]> pd.if.org Git - zpackage/blobdiff - t/tap.sh
let newpackage set additional fields
[zpackage] / t / tap.sh
index 0d03831bcf03cbb41d63ba198d8ab1f0a96f61a5..c9fe8788b52694a69da2768638c4537c4018a1c5 100755 (executable)
--- a/t/tap.sh
+++ b/t/tap.sh
@@ -4,37 +4,41 @@ tn=0
 planned=0
 
 tryrun() {
-       note="$@"
+       if [ "$1" = "-v" ]; then
+               allout=1
+               shift
+       else
+               allout=0
+       fi
+
        program=$1
        shift
+
        $program "$@" > test.out 2>&1
-       rv=$?
-       if [ $rv -ne 0 ]; then
+       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 [ $rv -ne 0 ]; then
-               cat test.out | diagstdin
+
+       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 $rv
+
+       return $tap_rv
 }
 
 require() {
-       note="$*"
-       program=$1
-       shift
-       $program "$@" > test.out 2>&1
+       tryrun "$@"
        rv=$?
-       tn=$((tn + 1))
        if [ $rv -ne 0 ]; then
-               printf 'not ok %d - %s %s\n' $tn $program "$*"
-               cat test.out | diagstdin
-               rm test.out
                bailout "exit status $rv";
        fi
-       printf 'ok %d - %s %s\n' $tn $program "$*"
-
 }
 
 bailout() {
@@ -88,6 +92,7 @@ exitwith() {
        tn=$((tn + 1))
        printf 'ok %d - %s\n' $tn "$*"
        shownote
+       return $rv
 }
 
 okstreq() {
@@ -120,6 +125,26 @@ skip() {
        while [ $tap_skipping -gt 0 ]; do
                tn=$((tn + 1))
                tap_skipping=$((tap_skipping - 1))
-               printf 'ok %d - skip %s\n' $tn "$*"
+               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 "$@"
+}