From: Ralph Corderoy Date: Mon, 17 Oct 2016 19:35:51 +0000 (+0100) Subject: A-ha! automake has support for tests expected to fail; use that. X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/4d6435dbde12837bdf4b4d594e0440392df4b9d3?ds=inline;hp=c6f2d14d9c38345075629af3487c2de491584ca1 A-ha! automake has support for tests expected to fail; use that. Backing out my recent addition of an `expectedfail` parameter to the `check' function. --- diff --git a/Makefile.am b/Makefile.am index f61643b5..beff7db6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -111,6 +111,10 @@ TESTS = test/ali/test-ali test/anno/test-anno \ test/whatnow/test-ls test/whom/test-whom \ test/cleanup ## The "cleanup" test should always be last. +XFAIL_TESTS = \ + test/scan/test-header-parsing \ + # + check_SCRIPTS = test/common.sh check_PROGRAMS = test/getfullname test/getcanon test/fakepop test/fakesmtp \ test/getcwidth test/fakehttp diff --git a/test/common.sh.in b/test/common.sh.in index 4734612c..b123aca6 100644 --- a/test/common.sh.in +++ b/test/common.sh.in @@ -198,8 +198,6 @@ prepare_space() { #### 'ignore space' -- spacing differences will not be considered #### significant, emulating GNU diff -w. It is assumed that the #### first file has already been run through prepare_space. -#### 'expectfail' -- The test is expected to fail, e.g. due to a code -#### bug, but the test should run as a placeholder for the fix. #### ':' -- will print '' in the failure message, #### to make it easier to tell which of multiple tests has failed. check() { @@ -207,13 +205,11 @@ check() { second=$1; shift keepfirst= ignorespace= - expectfail=false label=test while [ $# -gt 0 ]; do case $1 in 'keep first') keepfirst=1 ;; 'ignore space') ignorespace=1 ;; - expectfail) expectfail=true;; ':') shift; label=\'"$*"\'; break ;; *) echo "$0: invalid check() argument \"$1\" in test suite" >&2 ;; esac @@ -231,25 +227,15 @@ check() { if [ "$success" ]; then [ "$keepfirst" ] || rm -f "$first" rm -f "$second" - if $expectfail; then - echo "$0: expected test to fail, but it passed" - failed=`expr ${failed:-0} + 1` - #### Set return status of the function. - [ $failed -eq 0 ] - fi else echo #### POSIX diff should support -c. diff -c "$first" "$second" || true echo echo "$0: $label failed, outputs are in $first and $second." - if $expectfail; then - echo "$0: $label expected to fail, ignoring" - else - failed=`expr ${failed:-0} + 1` - #### Set return status of the function. - [ $failed -eq 0 ] - fi + failed=`expr ${failed:-0} + 1` + #### Set return status of the function. + [ $failed -eq 0 ] fi } diff --git a/test/scan/test-header-parsing b/test/scan/test-header-parsing index 29a625e6..37b3b048 100755 --- a/test/scan/test-header-parsing +++ b/test/scan/test-header-parsing @@ -23,7 +23,7 @@ for a in a: a:1 a:12 aa: aa:1 aa:12 aaa: aaa:1 aaa:12 aaaa: aaaa:1 aaaa:12; do f="`sed 's/:.*/}/; s/^/%{/' "$mail"`" run_prog scan -forma "$f" -file "$mail" >"$actual" || exit 1 - check "$expected" "$actual" expectfail + check "$expected" "$actual" break 3 # Fails on first iteration! done done