planned=0
tryrun() {
- note="$@"
+ if [ "$1" = "-v" ]; then
+ allout=1
+ shift
+ else
+ allout=0
+ fi
+
program=$1
shift
- $program "$@"
- if [ $? -ne 0 ]; then
+
+ $program "$@" > test.out 2>&1
+ tap_rv=$?
+ tn=$((tn + 1))
+
+ if [ $tap_rv -ne 0 ]; then
printf 'not ';
fi
- tn=$((tn + 1))
printf 'ok %d - %s %s\n' $tn $program "$*"
+
+ if [ $allout -eq 1 ] || [ $tap_rv -ne 0 ]; then
+ if test -s test.out; then
+ cat test.out | diagstdin
+ fi
+ rm test.out
+ fi
+
+ return $tap_rv
+}
+
+require() {
+ tryrun "$@"
+ rv=$?
+ if [ $rv -ne 0 ]; then
+ bailout "exit status $rv";
+ fi
+}
+
+bailout() {
+ diag "$@"
+ printf "bail out!\n";
+ exit 255;
}
shownote() {
fi
}
+diag() {
+ printf '# %s\n' "$@"
+}
+
+diagfile() {
+ sed -e 's/^/# /' $1
+}
+
+diagstdin() {
+ sed -e 's/^/# /'
+}
+
okexit() {
exitwith 0 "$*"
}
note=
if [ $rv -eq 0 ]; then
printf 'not ';
- note=$(printf 'got "%d" expected "%d"' "$rv" "0")
+ note=$(printf 'got "%d" expected non-zero' "$rv")
fi
tn=$((tn + 1))
printf 'ok %d - %s\n' $tn "$*"
note=
if [ $rv -ne $1 ]; then
printf 'not ';
- note=$(printf '# got "%d" expected "%d"' "$1" "$2")
+ note=$(printf 'got "%d" expected "%d"' "$rv" "$1")
fi
shift
tn=$((tn + 1))
printf 'ok %d - %s\n' $tn "$*"
shownote
+ return $rv
}
okstreq() {
note=
if [ "$1" != "$2" ]; then
printf 'not ';
- note=$(printf 'got "%s" expected "%s"' "$1" "$2")
+ note=$(printf 'got "%s"\n# expected "%s"' "$1" "$2")
fi
shift;shift;
printf '1..%d\n' $tn
fi
}
+
+skip() {
+ tap_skipping=$1
+ shift
+ while [ $tap_skipping -gt 0 ]; do
+ tn=$((tn + 1))
+ tap_skipping=$((tap_skipping - 1))
+ printf 'ok %d - # skip %s\n' $tn "$*"
+ #ok '# skip ' "$*"
+ done
+}
+
+ok() {
+ rv=$1
+ shift
+ if [ $rv = 1 ]; then
+ printf 'not '
+ fi
+ tn=$((tn + 1))
+ printf 'ok %d - %s\n' $tn "$*"
+ return $rv
+}
+
+pass() {
+ ok 0 "$@"
+}
+
+fail() {
+ ok 1 "$@"
+}