autoconf-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Autoconf source repository branch, master, updated. v2.65-85-g


From: Ralf Wildenhues
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.65-85-ge3e31f6
Date: Mon, 14 Jun 2010 18:38:07 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=e3e31f6dc457512879823bcf0f35d6cb175c45e7

The branch, master has been updated
       via  e3e31f6dc457512879823bcf0f35d6cb175c45e7 (commit)
       via  41bd1b25dc6737dbf6c8b4fad88f7968f1c4161b (commit)
      from  d1a23e61aa727888683d9796aea01a82073934ca (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit e3e31f6dc457512879823bcf0f35d6cb175c45e7
Author: Ralf Wildenhues <address@hidden>
Date:   Sun Jun 13 08:38:09 2010 +0200

    Autotest: simplify logic to compute test group result.
    
    * lib/autotest/general.m4 (AT_INIT): Compactify result
    computation logic.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

commit 41bd1b25dc6737dbf6c8b4fad88f7968f1c4161b
Author: Ralf Wildenhues <address@hidden>
Date:   Mon Jun 14 20:31:58 2010 +0200

    New Autotest testsuite option --recheck.
    
    * lib/autotest/general.m4 (AT_INIT): New variable $at_recheck.
    Escape hyphen in $at_dir early.  Accept command line switch
    --recheck.  Set $at_suite_log early, based on --directory
    switch; with --recheck, include the list of FAILed and XPASSed
    tests from old testsuite.log file in $at_groups.  Document
    --recheck in --help output.
    * tests/autotest.at (recheck): New test.
    * doc/autoconf.texi (testsuite Invocation): Document --recheck.
    * NEWS: Update.
    
    Signed-off-by: Ralf Wildenhues <address@hidden>

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog               |   17 +++++++++++++++++
 NEWS                    |    3 +++
 doc/autoconf.texi       |    4 ++++
 lib/autotest/general.m4 |   46 +++++++++++++++++++++++++++++++---------------
 tests/autotest.at       |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 101 insertions(+), 15 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index a495513..d1fc70e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2010-06-14  Ralf Wildenhues  <address@hidden>
+
+       Autotest: simplify logic to compute test group result.
+       * lib/autotest/general.m4 (AT_INIT): Compactify result
+       computation logic.
+
+       New Autotest testsuite option --recheck.
+       * lib/autotest/general.m4 (AT_INIT): New variable $at_recheck.
+       Escape hyphen in $at_dir early.  Accept command line switch
+       --recheck.  Set $at_suite_log early, based on --directory
+       switch; with --recheck, include the list of FAILed and XPASSed
+       tests from old testsuite.log file in $at_groups.  Document
+       --recheck in --help output.
+       * tests/autotest.at (recheck): New test.
+       * doc/autoconf.texi (testsuite Invocation): Document --recheck.
+       * NEWS: Update.
+
 2010-06-14  Karl Berry  <address@hidden>  (tiny change)
 
        Clarify comment about old system.
diff --git a/NEWS b/NEWS
index dfe8cd7..f1fdefb 100644
--- a/NEWS
+++ b/NEWS
@@ -21,6 +21,9 @@ GNU Autoconf NEWS - User visible changes.
 
 ** AS_SET_CATFILE accepts nonliterals in its variable name argument now.
 
+** Autotest testsuites accept an option --recheck to rerun tests that
+   failed or passed unexpectedly during the last non-debug testsuite run.
+
 * Major changes in Autoconf 2.65 (2009-11-21) [stable]
   Released by Eric Blake, based on git versions 2.64.*.
 
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index 6be99aa..ca0d85c 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -23805,6 +23805,10 @@ log (in order to preserve supposedly existing full log 
file).  This is
 the default for debugging scripts, but it can also be useful to debug
 the testsuite itself.
 
address@hidden --recheck
+Add to the selection all test groups that failed or passed unexpectedly
+during the last non-debugging test run.
+
 @item --trace
 @itemx -x
 Trigger shell tracing of the test groups.
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index ac8f523..5f965fd 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -403,6 +403,8 @@ at_list_p=false
 at_clean=false
 # Test groups to run
 at_groups=
+# Whether to rerun failed tests.
+at_recheck=
 # Whether a write failure occurred
 at_write_fail=0
 
@@ -558,6 +560,9 @@ do
     --directory=* )
        at_change_dir=:
        at_dir=$at_optarg
+       if test x- = "x$at_dir" ; then
+         at_dir=./-
+       fi
        ;;
 
     # Parallel execution.
@@ -606,6 +611,9 @@ do
        `
        AS_VAR_APPEND([at_groups], ["$at_groups_selected "])
        ;;
+    --recheck)
+       at_recheck=:
+       ;;
 m4_divert_pop([PARSE_ARGS])dnl
 dnl Process *=* last to allow for user specified --option=* type arguments.
 m4_divert_push([PARSE_ARGS_END])dnl
@@ -633,10 +641,25 @@ done
 # Verify our last option didn't require an argument
 AS_IF([test -n "$at_prev"], [AS_ERROR([`$at_prev' requires an argument])])
 
+# The file containing the suite.
+at_suite_log=$at_dir/$as_me.log
+
 # Selected test groups.
-if test -z "$at_groups"; then
+if test -z "$at_groups$at_recheck"; then
   at_groups=$at_groups_all
 else
+  if test -n "$at_recheck" && test -r "$at_suite_log"; then
+    at_oldfails=`sed -n ['
+      /^Failed tests:$/,/^Skipped tests:$/{
+       s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^Unexpected passes:$/,/^## Detailed failed tests/{
+       s/^[ ]*\([1-9][0-9]*\):.*/\1/p
+      }
+      /^## Detailed failed tests/q
+      '] "$at_suite_log" | tr "$as_nl" ' '`
+    AS_VAR_APPEND([at_groups], ["$at_oldfails"])
+  fi
   # Sort the tests, removing duplicates.
   at_groups=`AS_ECHO(["$at_groups"]) | tr ' ' "$as_nl" | sort -nu`
 fi
@@ -686,6 +709,7 @@ Execution tuning:
   -k, --keywords=KEYWORDS
 [                 select the tests matching all the comma-separated KEYWORDS]
 [                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD]
+      --recheck  select all tests that failed or passed unexpectedly last time
   -e, --errexit  abort as soon as a test fails; implies --debug
   -v, --verbose  force more detailed output
 [                 default for debugging scripts]
@@ -773,9 +797,6 @@ m4_divert_push([TESTS_BEGIN])dnl
 
 # Take any -C into account.
 if $at_change_dir ; then
-  if test x- = "x$at_dir" ; then
-    at_dir=./-
-  fi
   test x != "x$at_dir" && cd "$at_dir" \
     || AS_ERROR([unable to change directory])
   at_dir=`pwd`
@@ -840,7 +861,7 @@ m4_text_box([Directory structure.])
 # The directory the whole suite works in.
 # Should be absolute to let the user `cd' at will.
 at_suite_dir=$at_dir/$as_me.dir
-# The file containing the suite.
+# The file containing the suite ($at_dir might have changed since earlier).
 at_suite_log=$at_dir/$as_me.log
 # The directory containing helper files per test group.
 at_helper_dir=$at_suite_dir/at-groups
@@ -1131,11 +1152,6 @@ _ATEOF
   $at_verbose AS_ECHO_N(["$at_group. $at_setup_line: "])
   AS_ECHO_N(["$at_group. $at_setup_line: "]) >> "$at_group_log"
   case $at_xfail:$at_status in
-    *:99)
-       at_msg='FAILED ('`cat "$at_check_line_file"`')'
-       at_res=fail
-       at_errexit=$at_errexit_p
-       ;;
     yes:0)
        at_msg="UNEXPECTED PASS"
        at_res=xpass
@@ -1151,16 +1167,16 @@ _ATEOF
        at_res=skip
        at_errexit=false
        ;;
+    no:* | *:99)
+       at_msg='FAILED ('`cat "$at_check_line_file"`')'
+       at_res=fail
+       at_errexit=$at_errexit_p
+       ;;
     yes:*)
        at_msg='expected failure ('`cat "$at_check_line_file"`')'
        at_res=xfail
        at_errexit=false
        ;;
-    no:*)
-       at_msg='FAILED ('`cat "$at_check_line_file"`')'
-       at_res=fail
-       at_errexit=$at_errexit_p
-       ;;
   esac
   echo "$at_res" > "$at_job_dir/$at_res"
   # In parallel mode, output the summary line only afterwards.
diff --git a/tests/autotest.at b/tests/autotest.at
index a09e2c1..ad38b7a 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -890,6 +890,52 @@ AT_CHECK([$CONFIG_SHELL ./micro-suite -C nonesuch --help], 
[0], [ignore], [])
 ])
 
 
+# --recheck.
+AT_CHECK_AT_TEST([recheck],
+  [AT_CHECK([:])
+   AT_CLEANUP
+   AT_SETUP([failing test])
+   AT_CHECK([exit 1])
+   AT_CLEANUP
+   AT_SETUP([xpassing test])
+   AT_XFAIL_IF([:])
+   AT_CHECK([:])
+   AT_CLEANUP
+   AT_SETUP([xfailing test])
+   AT_XFAIL_IF([:])
+   AT_CHECK([exit 1])
+], [], [], [], [], [], [
+AT_CHECK([$CONFIG_SHELL ./micro-suite --recheck], [0], [stdout])
+AT_CHECK([grep "0 tests were successful" stdout], [0], [ignore])
+
+AT_CHECK([$CONFIG_SHELL ./micro-suite], [1], [ignore], [ignore])
+AT_CHECK([grep 'only test' micro-suite.log], [0], [ignore])
+AT_CHECK([$CONFIG_SHELL ./micro-suite --recheck], [1], [ignore], [ignore])
+AT_CHECK([grep 'only test' micro-suite.log], [1])
+AT_CHECK([grep 'xfailing' micro-suite.log], [1])
+AT_CHECK([grep 'failing test' micro-suite.log], [0], [ignore])
+AT_CHECK([grep 'xpassing test' micro-suite.log], [0], [ignore])
+
+AT_CHECK([$CONFIG_SHELL ./micro-suite --clean], [0])
+AT_CHECK([test -f micro-suite.log], [1])
+
+dnl check specifying a different relative path to run in.
+AT_CHECK([mkdir sub1])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -C sub1], [1], [ignore], [ignore])
+AT_CHECK([test -f micro-suite.log], [1])
+AT_CHECK([test -f sub1/micro-suite.log], [0])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -C sub1 --recheck --list], [0], [stdout])
+AT_CHECK([grep 'only test' stdout], [1])
+AT_CHECK([grep 'xfailing test' stdout], [1])
+AT_CHECK([grep 'failing test' stdout], [0], [ignore])
+AT_CHECK([grep 'xpassing test' stdout], [0], [ignore])
+AT_CHECK([$CONFIG_SHELL ./micro-suite -C sub1 --recheck], [1], [ignore],
+        [ignore])
+AT_CHECK([grep 'failing test' sub1/micro-suite.log], [0], [ignore])
+AT_CHECK([grep 'xpassing test' sub1/micro-suite.log], [0], [ignore])
+], [1 4])
+
+
 ## -------- ##
 ## Banners. ##
 ## -------- ##


hooks/post-receive
-- 
GNU Autoconf source repository



reply via email to

[Prev in Thread] Current Thread [Next in Thread]