123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- #! /bin/sh
- . test-init.sh
- cp "$am_testaux_srcdir"/trivial-test-driver . \
- || fatal_ "failed to fetch auxiliary script trivial-test-driver"
- cat >> configure.ac << 'END'
- AC_OUTPUT
- END
- cat > Makefile.am << 'END'
- TEST_LOG_DRIVER = $(SHELL) $(srcdir)/trivial-test-driver
- TESTS = a.test b.test c.test
- END
- cat > a.test << 'END'
- #! /bin/sh
- echo PASS: 1
- echo PASS: 2
- : > a.run
- END
- cat > b.test << 'END'
- #! /bin/sh
- echo SKIP: b0
- if test -f b.ok; then
- echo XFAIL: b1
- else
- echo FAIL: b2
- fi
- : > b.run
- END
- cat > c.test << 'END'
- #! /bin/sh
- if test -f c.err; then
- echo ERROR: xxx
- elif test -f c.ok; then
- echo PASS: ok
- else
- echo XPASS: xp
- fi
- : > c.run
- END
- chmod a+x *.test
- $ACLOCAL
- $AUTOCONF
- $AUTOMAKE
- for vpath in : false; do
- if $vpath; then
- mkdir build
- cd build
- srcdir=..
- else
- srcdir=.
- fi
- $srcdir/configure
- : Run the tests for the first time.
- run_make -O -e FAIL check
-
- test -f a.run
- test -f b.run
- test -f c.run
- count_test_results total=5 pass=2 fail=1 xpass=1 xfail=0 skip=1 error=0
- rm -f *.run
- : An empty '$(TESTS)' or '$(TEST_LOGS)' means that no test should be run.
- for var in TESTS TEST_LOGS; do
- run_make -O "$var=" recheck
- count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0
- test ! -e a.run
- test ! -e b.run
- test ! -e c.run
- done
- unset var
- : a.test was successful the first time, no need to re-run it.
- using_gmake || $sleep
- run_make -O TESTS=a.test recheck
- count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0
- test ! -e a.run
- test ! -e b.run
- test ! -e c.run
- : b.test failed, it should be re-run. And make it pass this time.
- using_gmake || $sleep
- echo OK > b.ok
- run_make -O TEST_LOGS=b.log recheck
- test ! -e a.run
- test -f b.run
- test ! -e c.run
- count_test_results total=2 pass=0 fail=0 xpass=0 xfail=1 skip=1 error=0
- rm -f *.run
- : No need to re-run a.test or b.test anymore.
- using_gmake || $sleep
- run_make -O TEST_LOGS=b.log recheck
- count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0
- test ! -e a.run
- test ! -e b.run
- test ! -e c.run
- using_gmake || $sleep
- run_make -O TESTS='a.test b.test' recheck
- count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0
- test ! -e a.run
- test ! -e b.run
- test ! -e c.run
- : No need to re-run a.test anymore, but c.test should be rerun,
- : as it contained an XPASS. And this time, make it fail with
- : an hard error.
- echo dummy > c.err
- run_make -e FAIL -O TEST_LOGS='a.log c.log' recheck
- count_test_results total=1 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=1
- test ! -e a.run
- test ! -e b.run
- test -f c.run
- rm -f *.run *.err
- : c.test contained and hard error the last time, so it should be re-run.
- : This time, make it pass
-
- using_gmake || $sleep
- echo dummy > c.ok
- run_make -O TESTS='c.test a.test' recheck
- count_test_results total=1 pass=1 fail=0 xpass=0 xfail=0 skip=0 error=0
- test ! -e a.run
- test ! -e b.run
- test -f c.run
- rm -f *.run *.err *.ok
- : Nothing should be rerun anymore, as all tests have been eventually
- : successful.
- using_gmake || $sleep
- run_make -O recheck
- count_test_results total=0 pass=0 fail=0 xpass=0 xfail=0 skip=0 error=0
- test ! -e a.run
- test ! -e b.run
- test ! -e c.run
- cd $srcdir
- done
- :
|