-# Common helper routines for test shell scripts -- intended to be sourced by them
-test_skip ()
+# Common helper routines for test shell scripts
+# -- intended to be sourced by them
+
+test_skip()
{
- WHY="$1"
- echo "$Test $0 SKIP ($WHY)"
- exit 120
+ WHY="$1"
+ echo "Test $0 SKIP ($WHY)"
+ exit 120
}
# portable implementation of 'which' utility
findprog()
{
- FOUND=
- PROG="$1"
- IFS_SAVE="$IFS"
- IFS=:
- for D in $PATH; do
- if [ -z "$D" ]; then
- D=.
- fi
- if [ -f "$D/$PROG" ] && [ -x "$D/$PROG" ]; then
- printf '%s\n' "$D/$PROG"
- break
- fi
- done
- IFS="$IFS_SAVE"
+ FOUND=
+ PROG="$1"
+ IFS_SAVE="$IFS"
+ IFS=:
+ for D in $PATH; do
+ if [ -z "$D" ]; then
+ D=.
+ fi
+ if [ -f "$D/$PROG" ] && [ -x "$D/$PROG" ]; then
+ printf '%s\n' "$D/$PROG"
+ break
+ fi
+ done
+ IFS="$IFS_SAVE"
+}
+
+require_prog()
+{
+ if [ -z "$(findprog $1)" ]; then
+ test_skip "missing $1"
+ fi
+}
+
+# Some stuff for doing silly progress indicators
+progress_update()
+{
+ test -t 1 || return 0 # supress progress meter if non-interactive
+ THIS="$1"
+ FIRST="$2"
+ LAST="$3"
+ RANGE="$(expr $LAST - $FIRST ||:)"
+ PROG="$(expr $THIS - $FIRST ||:)"
+ # this automatically rounds to nearest integer
+ PERC="$(expr 100 \* $PROG / $RANGE ||:)"
+ # note \r so next update will overwrite
+ printf "%3d%%\r" $PERC
}
-require_prog ()
+progress_done()
{
- if [ -z "$(findprog $1)" ]; then
- test_skip "missing $1"
- fi
+ test -t 1 || return 0 # supress progress meter if non-interactive
+ printf "100%%\n"
}