commit b20cb3833267b93e3b19ae8ca6a403384db46401 from: Sven M. Hallberg date: Fri Jun 27 20:45:59 2025 UTC rearrange tests directory commit - 340514ae173c1261ba77df08b5cba810b500a7d0 commit + b20cb3833267b93e3b19ae8ca6a403384db46401 blob - 94fe3054ac1de2ddfbfa65ac7734fb269da87803 (mode 755) blob + /dev/null --- tests/assert-exercise +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -# helper to run a given test with exercise -# -# $1: name of test file (used as base for aux files) -# $2: expected stdout (printf syntax) -# $3: expected stderr (printf syntax) -# further arguments: passed to exercise -# stdin: test executable to run - -d=`dirname $0` -exe=$d/../exercise -test -z "$tst" && tst=$1.tst -test -z "$pth" && pth=$tst -out=$1.out -err=$1.err -expout=$1.expout -experr=$1.experr - -trap "rm -f $tst $out $err $expout $experr" EXIT ->$tst >$err >$out >$expout >$experr - -# expected output -printf "$2" > $expout -printf "$3" > $experr - -# read test to run from stdin -cat > $tst -chmod +x $tst - -# execute & compare -shift 3 -$exe "$@" $pth 1>$out 2>$err -test "$?" = "127" && exit 127 -diff -u $experr $err >&2 && \ -diff -u $expout $out >&2 blob - /dev/null blob + 6ea68beae5c9081fd1c50b8291b2f67efa309ede (mode 755) --- /dev/null +++ tests/exercise/flag/B.t @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + + +h=$PWD +cd `dirname $0` +wd=`basename $0`.wd +trap "rmdir $wd" EXIT +mkdir $wd + +$h/assert-exercise $wd/foo \ + "total 1 run 1 ok 1 fail 0 error 0\n" \ + '' \ + < $expout +printf "$0.tst: permission denied\\nerror $0.tst\\n\\n" > $experr + +# test to run +cat > $tst << EOF +#!/bin/sh + exit 0 +EOF +# not set executable! + +# execute +$exe $tst 1>$out 2>$err + +# compare +diff -u $expout $out >&2 && \ +diff -u $experr $err >&2 +RET=$? + +rm -f $tst $out $err $expout $experr +exit $RET blob - /dev/null blob + 134cfa457bd30ef4757d0d00e7fb40d4b1a21287 (mode 755) --- /dev/null +++ tests/exercise/test/ok.t @@ -0,0 +1,6 @@ +#!/bin/sh + +exec ./assert-exercise $0 'total 1 run 1 ok 1 fail 0 error 0\n' '' <&2 + exit 127 +EOF blob - /dev/null blob + 869e26672939d941ae9749e15c5135b26a3d3f28 (mode 755) --- /dev/null +++ tests/exercise/test/stderr/fail.t @@ -0,0 +1,12 @@ +#!/bin/sh + +# test returns failure and prints on stderr +# should count as failure + +exec ./assert-exercise $0 \ + 'total 1 run 1 ok 0 fail 1 error 0\n' \ + "test test test\\nfail $0.tst\\n\\n" <&2 + exit 1 +EOF blob - /dev/null blob + b967245ae2d2bfe979593d7d56c1c97140b2261b (mode 755) --- /dev/null +++ tests/exercise/test/stderr/ok.t @@ -0,0 +1,12 @@ +#!/bin/sh + +# test returns success but prints on stderr +# should count as failure + +exec ./assert-exercise $0 \ + 'total 1 run 1 ok 0 fail 1 error 0\n' \ + "test test test\\nfail $0.tst\\n\\n" <&2 + exit 0 +EOF blob - /dev/null blob + d5dadb5dd9a6cbdea1584de4e04583ca386635c5 (mode 755) --- /dev/null +++ tests/exercise/testsuite/error.t @@ -0,0 +1,14 @@ +#!/bin/sh + +# if a test suite exits 127 it should count as a single test error. +# stderr should be passed through and followed by an error report. + +export tst=$0.tests +exec ./assert-exercise $0 \ + 'total 1 run 1 ok 0 fail 0 error 1\n' \ + "test test test\\nerror $tst\\n\\n" <&2 + echo 'total 1 run 1 ok 0 fail 0 error 1' + exit 127 +EOF blob - /dev/null blob + 1347c4ab3021bafb10c0b6b7fee8e8aefcf5688f (mode 755) --- /dev/null +++ tests/exercise/testsuite/inconsistent-1.t @@ -0,0 +1,18 @@ +#!/bin/sh + +# if a test suite reports inconsistent counters it should be counted as a +# single test error, the same as if the suite had exited with 127. +# stderr should be passed through and followed by an error message and a +# generic error report. + +# this tests the case where run exceeds total. + +export tst=$0.tests +exec ./assert-exercise $0 \ + 'total 1 run 1 ok 0 fail 0 error 1\n' \ + "test test test\\n$tst: counters inconsistent\\nerror $tst\\n\\n" <&2 + echo 'total 10 run 23 ok 22 fail 1 error 0' + exit 1 +EOF blob - /dev/null blob + 002e40d5bdf054b6c0121aee77b9ebea61fbf883 (mode 755) --- /dev/null +++ tests/exercise/testsuite/inconsistent-2.t @@ -0,0 +1,18 @@ +#!/bin/sh + +# if a test suite reports inconsistent counters it should be counted as a +# single test error, the same as if the suite had exited with 127. +# stderr should be passed through and followed by an error message and a +# generic error report. + +# this tests the case where run is not exactly the sum of ok, fail, and error. + +export tst=$0.tests +exec ./assert-exercise $0 \ + 'total 1 run 1 ok 0 fail 0 error 1\n' \ + "test test test\\n$tst: counters inconsistent\\nerror $tst\\n\\n" <&2 + echo 'total 23 run 22 ok 22 fail 1 error 0' + exit 1 +EOF blob - /dev/null blob + 5e717acc85d5feb61e1dad81884d94c0f612ddae (mode 755) --- /dev/null +++ tests/exercise/testsuite/progress.t @@ -0,0 +1,20 @@ +#!/bin/sh + +# a test suite may report partial progress counters +# before the final summary + +export tst=$0.tests +exec ./assert-exercise $0 \ + 'total 6 run 6 ok 1 fail 2 error 3\n' \ + '' <$0.err # create the file assert-exercise will use +err=`$STAT <$0.err` # stat it +exec ./assert-exercise $0 \ + 'total 6 run 6 ok 1 fail 2 error 3\n' \ + "$err\\n" <&2 # stat stderr, print result to stderr + echo 'total 6 run 6 ok 1 fail 2 error 3' + exit 1 +EOF blob - /dev/null blob + 0601a7382e26729f6333bf4a51c8ed54f305545b (mode 755) --- /dev/null +++ tests/exercise/testsuite.t @@ -0,0 +1,16 @@ +#!/bin/sh + +# if a test's filename matches *.tests its stdout should be parsed as +# a summary and get integrated as a set of subtests +# an exit code other than 127 should not matter +# stderr should be passed through verbatim + +export tst=$0.tests +exec ./assert-exercise $0 \ + 'total 6 run 6 ok 1 fail 2 error 3\n' \ + 'test test test\n' <&2 + echo 'total 6 run 6 ok 1 fail 2 error 3' + exit 1 +EOF blob - ddea8a03d8141add00b3d2adf64053c0ceeec2d0 (mode 755) blob + /dev/null --- tests/flag-B.t +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh - -set -e - -cd `dirname $0` -wd=`basename $0`.wd -trap "rmdir $wd" EXIT -mkdir $wd - -./assert-exercise $wd/foo \ - "total 1 run 1 ok 1 fail 0 error 0\n" \ - '' \ - <$tst >$err >$out >$expout >$experr + +# expected output +printf "$2" > $expout +printf "$3" > $experr + +# read test to run from stdin +cat > $tst +chmod +x $tst + +# execute & compare +shift 3 +$exe "$@" $pth 1>$out 2>$err +test "$?" = "127" && exit 127 +diff -u $experr $err >&2 && \ +diff -u $expout $out >&2 blob - 5e3466d53e264631da66f0799bb4d41be4958c5a (mode 755) blob + /dev/null --- tests/flag-C.t +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh - -set -e - -wd=$0.wd -trap "rmdir $wd" EXIT -mkdir $wd - -d=`dirname $0` -$d/assert-exercise $wd/foo \ - "total 1 run 1 ok 1 fail 0 error 0\n" \ - '' \ - < $expout -printf "$0.tst: permission denied\\nerror $0.tst\\n\\n" > $experr - -# test to run -cat > $tst << EOF -#!/bin/sh - exit 0 -EOF -# not set executable! - -# execute -$exe $tst 1>$out 2>$err - -# compare -diff -u $expout $out >&2 && \ -diff -u $experr $err >&2 -RET=$? - -rm -f $tst $out $err $expout $experr -exit $RET blob - 56684357313b4d2620f58a5b80dd6466467232b7 (mode 755) blob + /dev/null --- tests/test-ok.t +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -d=`dirname $0` -exec $d/assert-exercise $0 'total 1 run 1 ok 1 fail 0 error 0\n' '' <&2 - exit 127 -EOF blob - 47515912398bb9d2996724b46bf5c58d9516eefd (mode 755) blob + /dev/null --- tests/test-stderr-fail.t +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# test returns failure and prints on stderr -# should count as failure - -d=`dirname $0` -exec $d/assert-exercise $0 \ - 'total 1 run 1 ok 0 fail 1 error 0\n' \ - "test test test\\nfail $0.tst\\n\\n" <&2 - exit 1 -EOF blob - 9c68bd1b5f13af51a957bbdb527714650129ec68 (mode 755) blob + /dev/null --- tests/test-stderr-ok.t +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# test returns success but prints on stderr -# should count as failure - -d=`dirname $0` -exec $d/assert-exercise $0 \ - 'total 1 run 1 ok 0 fail 1 error 0\n' \ - "test test test\\nfail $0.tst\\n\\n" <&2 - exit 0 -EOF blob - a517ad3f792a706c406b0b9835d2b90a9b95c359 (mode 755) blob + /dev/null --- tests/testsuite-error.t +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -# if a test suite exits 127 it should count as a single test error. -# stderr should be passed through and followed by an error report. - -d=`dirname $0` -export tst=$0.tests -exec $d/assert-exercise $0 \ - 'total 1 run 1 ok 0 fail 0 error 1\n' \ - "test test test\\nerror $tst\\n\\n" <&2 - echo 'total 1 run 1 ok 0 fail 0 error 1' - exit 127 -EOF blob - f7369623b5d2493555abe0a0eb21cec9a4d76f74 (mode 755) blob + /dev/null --- tests/testsuite-inconsistent-1.t +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# if a test suite reports inconsistent counters it should be counted as a -# single test error, the same as if the suite had exited with 127. -# stderr should be passed through and followed by an error message and a -# generic error report. - -# this tests the case where run exceeds total. - -d=`dirname $0` -export tst=$0.tests -exec $d/assert-exercise $0 \ - 'total 1 run 1 ok 0 fail 0 error 1\n' \ - "test test test\\n$tst: counters inconsistent\\nerror $tst\\n\\n" <&2 - echo 'total 10 run 23 ok 22 fail 1 error 0' - exit 1 -EOF blob - 643e12c3a518322660f34abe8cc8c55aa7a3b4ec (mode 755) blob + /dev/null --- tests/testsuite-inconsistent-2.t +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -# if a test suite reports inconsistent counters it should be counted as a -# single test error, the same as if the suite had exited with 127. -# stderr should be passed through and followed by an error message and a -# generic error report. - -# this tests the case where run is not exactly the sum of ok, fail, and error. - -d=`dirname $0` -export tst=$0.tests -exec $d/assert-exercise $0 \ - 'total 1 run 1 ok 0 fail 0 error 1\n' \ - "test test test\\n$tst: counters inconsistent\\nerror $tst\\n\\n" <&2 - echo 'total 23 run 22 ok 22 fail 1 error 0' - exit 1 -EOF blob - b20e999df43e5c70b51c0d8d1ae30b2cfb37e251 (mode 755) blob + /dev/null --- tests/testsuite-progress.t +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -# a test suite may report partial progress counters -# before the final summary - -d=`dirname $0` -export tst=$0.tests -exec $d/assert-exercise $0 \ - 'total 6 run 6 ok 1 fail 2 error 3\n' \ - '' <$0.err # create the file assert-exercise will use -err=`$STAT <$0.err` # stat it -exec $d/assert-exercise $0 \ - 'total 6 run 6 ok 1 fail 2 error 3\n' \ - "$err\\n" <&2 # stat stderr, print result to stderr - echo 'total 6 run 6 ok 1 fail 2 error 3' - exit 1 -EOF blob - a779442e20f957b65558e40201546a8d13a64d48 (mode 755) blob + /dev/null --- tests/testsuite.t +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# if a test's filename matches *.tests its stdout should be parsed as -# a summary and get integrated as a set of subtests -# an exit code other than 127 should not matter -# stderr should be passed through verbatim - -d=`dirname $0` -export tst=$0.tests -exec $d/assert-exercise $0 \ - 'total 6 run 6 ok 1 fail 2 error 3\n' \ - 'test test test\n' <&2 - echo 'total 6 run 6 ok 1 fail 2 error 3' - exit 1 -EOF