autotest: keep testsuite files on unexpected pass

* lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
Don't cleanup the group directory when a test unexpectedly passes.
* tests/autotest.at (Cleanup): Check that an unexpected pass leaves
the test group directory intact.

Signed-off-by: Peter Rosin <peda@lysator.liu.se>
This commit is contained in:
Peter Rosin 2010-08-10 23:08:03 +02:00 committed by Eric Blake
parent e8ad0ea4c1
commit 8fb83cd25b
3 changed files with 23 additions and 7 deletions

View File

@ -1,3 +1,11 @@
2010-08-10 Peter Rosin <peda@lysator.liu.se>
Keep testsuite files on unexpected pass.
* lib/autotest/general.m4 (AT_INIT) <at_fn_group_postprocess>:
Don't cleanup the group directory when a test unexpectedly passes.
* tests/autotest.at (Cleanup): Check that an unexpected pass leaves
the test group directory intact.
2010-08-10 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Skip AC_FC_SRCEXT([f90]) tests with a Fortran 77 compiler in $FC.

View File

@ -1253,8 +1253,9 @@ _ATEOF
AS_ECHO(["$at_log_msg"]) >> "$at_group_log"
AS_ECHO(["$at_log_msg"]) >&AS_MESSAGE_LOG_FD
# Cleanup the group directory, unless the user wants the files.
if $at_debug_p; then
# Cleanup the group directory, unless the user wants the files
# or the success was unexpected.
if $at_debug_p || test $at_res = xpass; then
at_fn_create_debugging_script
else
if test -d "$at_group_dir"; then

View File

@ -478,6 +478,7 @@ AT_CHECK_AT([Binary output],
AT_CHECK_AT_TEST([Cleanup],
[AT_CHECK([test ! -f cleanup.success && test ! -f cleanup.failure])
AT_XFAIL_IF([$xfail])
AT_CHECK_UNQUOTED([exit $value], [ignore], [$output],
[], [touch cleanup.failure], [touch cleanup.success])],
[], [], [], [],
@ -487,23 +488,29 @@ AT_CHECK_AT_TEST([Cleanup],
AT_CHECK([test -f micro-suite.dir/1/cleanup.success])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.failure])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d value=1], [], [ignore])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d xfail=false value=1], [], [ignore])
AT_CHECK([test -f micro-suite.dir/1/cleanup.success])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.failure])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d value=1 output=mismatch],
AT_CHECK([$CONFIG_SHELL ./micro-suite xfail=: value=0],
[1], [ignore], [ignore])
AT_CHECK([test -f micro-suite.dir/1/cleanup.success])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.failure])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d xfail=false value=1 output=mismatch],
[1], [ignore], [ignore])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.success])
AT_CHECK([test -f micro-suite.dir/1/cleanup.failure])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d value=77], [], [ignore])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d xfail=false value=77], [], [ignore])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.success])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.failure])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d value=99], [1], [ignore], [ignore])
AT_CHECK([$CONFIG_SHELL ./micro-suite -d xfail=false value=99],
[1], [ignore], [ignore])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.success])
AT_CHECK([test ! -f micro-suite.dir/1/cleanup.failure])
], [-d value=0])
], [-d xfail=false value=0])
## ----------------------------------------------------- ##
## Newlines and command substitutions in test commands. ##