automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, test-protocols, updated. v1


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, test-protocols, updated. v1.11-962-g4839ca9
Date: Fri, 05 Aug 2011 11:42:30 +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 Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=4839ca9219b95a6155e4161438318ec0aca3aaef

The branch, test-protocols has been updated
       via  4839ca9219b95a6155e4161438318ec0aca3aaef (commit)
       via  5e3ae4e14a471a7c61ac75ffd6cd71659e81b07f (commit)
      from  bc5ba174ea24265b6970e9b747c2cf791f203dc2 (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 4839ca9219b95a6155e4161438318ec0aca3aaef
Author: Stefano Lattarini <address@hidden>
Date:   Fri Aug 5 12:08:20 2011 +0200

    check: small cleanups and refactorings in test harness and drivers
    
    * lib/tap-driver (yn): New subroutine, converts a boolean value to
    a "yes" or "no" string.
    (write_test_results): Use it, and related reformatting.
    * lib/test-driver (trap): Also remove the `.trs' file on signals,
    for extra safety.
    (fatal): Remove this function, it's never used.
    ($logfile, $trsfile): Renamed ...
    ($log_file, $trs_file): ... to these, for clarity, and in order to
    be more consistent with the `tap-driver' script.
    Improve a couple of comments.
    * automake.in (handle_tests): Don't define anymore the now-obsolete
    make macro `$(TEST_LOGS_TMP)', nor add it to the list of files to
    be removed upon "make mostlyclean".
    * lib/am/check.am ($(TEST_SUITE_LOG)): New shell function `f_ok',
    tells whether a path refers to an existing, regular, readable file.
    Use it throughout.
    (recheck): Be safer w.r.t. make implementation that run recipes
    with `errexit' shell flag active.

commit 5e3ae4e14a471a7c61ac75ffd6cd71659e81b07f
Author: Stefano Lattarini <address@hidden>
Date:   Fri Aug 5 10:36:06 2011 +0200

    testsuite: use AM_TESTS_FD_REDIRECT where appropriate
    
    * parallel-tests-interrupt.test: Use AM_TESTS_FD_REDIRECT, not
    AM_TESTS_ENVIRONMENT, to define file descriptors' redirection
    for "make check".  Fix botched comment.

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

Summary of changes:
 ChangeLog                           |   29 +++++++++++++++++++++++++++++
 automake.in                         |    6 ------
 lib/Automake/tests/Makefile.in      |   13 +++++--------
 lib/am/check.am                     |   13 +++++++------
 lib/tap-driver                      |   16 ++++++++++------
 lib/test-driver                     |   28 +++++++++++-----------------
 tests/Makefile.in                   |   13 +++++--------
 tests/parallel-tests-interrupt.test |    4 ++--
 8 files changed, 69 insertions(+), 53 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 036e18e..46e6f03 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,34 @@
 2011-08-05  Stefano Lattarini  <address@hidden>
 
+       check: small cleanups and refactorings in test harness and drivers
+       * lib/tap-driver (yn): New subroutine, converts a boolean value to
+       a "yes" or "no" string.
+       (write_test_results): Use it, and related reformatting.
+       * lib/test-driver (trap): Also remove the `.trs' file on signals,
+       for extra safety.
+       (fatal): Remove this function, it's never used.
+       ($logfile, $trsfile): Renamed ...
+       ($log_file, $trs_file): ... to these, for clarity, and in order to
+       be more consistent with the `tap-driver' script.
+       Improve a couple of comments.
+       * automake.in (handle_tests): Don't define anymore the now-obsolete
+       make macro `$(TEST_LOGS_TMP)', nor add it to the list of files to
+       be removed upon "make mostlyclean".
+       * lib/am/check.am ($(TEST_SUITE_LOG)): New shell function `f_ok',
+       tells whether a path refers to an existing, regular, readable file.
+       Use it throughout.
+       (recheck): Be safer w.r.t. make implementation that run recipes
+       with `errexit' shell flag active.
+
+2011-08-05  Stefano Lattarini  <address@hidden>
+
+       testsuite: use AM_TESTS_FD_REDIRECT where appropriate
+       * parallel-tests-interrupt.test: Use AM_TESTS_FD_REDIRECT, not
+       AM_TESTS_ENVIRONMENT, to define file descriptors' redirection
+       for "make check".  Fix botched comment.
+
+2011-08-05  Stefano Lattarini  <address@hidden>
+
        docs: some fixlets in documentation on testsuites support
        * doc/automake.texi (Script-based Testsuites): Rename node ...
        (Scripts-based Testsuites): ... to this.  Break overly long lines
diff --git a/automake.in b/automake.in
index ad58f06..bccacf1 100644
--- a/automake.in
+++ b/automake.in
@@ -5118,12 +5118,6 @@ sub handle_tests
                                                  am__EXEEXT => $am_exeext);
                }
            }
-
-         # FIXME: this is partly out-of-date w.r.t. the rest of the
-          # FIXME: code now ... what is the best fix?
-         define_variable ('TEST_LOGS_TMP', '$(TEST_LOGS:.log=.log-t)', 
INTERNAL);
-         $clean_files{'$(TEST_LOGS_TMP)'} = MOSTLY_CLEAN;
-
          $clean_files{'$(TEST_LOGS)'} = MOSTLY_CLEAN;
          $clean_files{'$(am__TEST_BASES:=.trs)'} = MOSTLY_CLEAN;
          $clean_files{'$(TEST_SUITE_LOG)'} = MOSTLY_CLEAN;
diff --git a/lib/Automake/tests/Makefile.in b/lib/Automake/tests/Makefile.in
index c305321..ad08b66 100644
--- a/lib/Automake/tests/Makefile.in
+++ b/lib/Automake/tests/Makefile.in
@@ -171,7 +171,6 @@ am__test_logs1 = $(TESTS:=.log)
 TEST_LOGS = $(am__test_logs1:.pl.log=.log)
 PL_LOG_DRIVER = $(SHELL) $(top_srcdir)/lib/test-driver
 PL_LOG_COMPILE = $(PL_LOG_COMPILER) $(AM_PL_LOG_FLAGS) $(PL_LOG_FLAGS)
-TEST_LOGS_TMP = $(TEST_LOGS:.log=.log-t)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -344,12 +343,11 @@ cscope cscopelist:
 
 $(TEST_SUITE_LOG): $(TEST_LOGS)
        @$(am__sh_e_setup); $(am__tty_colors); \
+       f_ok () { test -f "$$1" && test -r "$$1"; }; \
        bases='$(am__TEST_BASES)'; \
        ws='[   ]'; \
        redo_bases=`for b in $$bases; do \
-                     test -f $$b.trs && test -r $$b.trs \
-                       && test -f $$b.log && test -r $$b.log \
-                       || echo $$b; \
+                     f_ok $$b.trs && f_ok $$b.log || echo $$b; \
                    done`; \
        if test -n "$$redo_bases"; then \
          redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
@@ -360,10 +358,10 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        st=0; \
        for b in $$redo_bases; do \
          for e in trs log; do \
-           if test ! -f $$b.$$e || test ! -r $$b.$$e; then \
+           f_ok $$b.$$e || { \
              echo "fatal: making $@: failed to create $$b.$$e" >&2; \
              st=1; \
-           fi; \
+           }; \
          done; \
        done; \
        test $$st -eq 0 || exit 1; \
@@ -494,7 +492,7 @@ recheck recheck-html:
        target=`echo $@ | sed 's,^re,,'`;                               \
        bases='$(am__TEST_BASES)';                                      \
        list=`for b in $$bases; do                                      \
-               test ! -f $$b.trs && test ! -f $$b.log && continue;     \
+               test -f $$b.trs || test -f $$b.log || continue;         \
                grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$b.trs            \
                  >/dev/null 2>&1 || echo $$b.log;                      \
              done | tr '\012\015' '  '`;                               \
@@ -562,7 +560,6 @@ install-strip:
        fi
 mostlyclean-generic:
        -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-       -test -z "$(TEST_LOGS_TMP)" || rm -f $(TEST_LOGS_TMP)
        -test -z "$(TEST_SUITE_HTML)" || rm -f $(TEST_SUITE_HTML)
        -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
        -test -z "$(am__TEST_BASES:=.trs)" || rm -f $(am__TEST_BASES:=.trs)
diff --git a/lib/am/check.am b/lib/am/check.am
index 36adef8..95e9ac6 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -141,6 +141,9 @@ am__stealth_MAKE = $(MAKE)
 
 $(TEST_SUITE_LOG): $(TEST_LOGS)
        @$(am__sh_e_setup); $(am__tty_colors); \
+## Helper shell function, tells whether a path refers to an existing,
+## regular, readable file.
+       f_ok () { test -f "$$1" && test -r "$$1"; }; \
        bases='$(am__TEST_BASES)'; \
        ws='[   ]'; \
 ## We need to ensures that all the required `.trs' and `.log' files will
@@ -149,9 +152,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
 ## the `.log' files are readable, and worse, they don't ensure that the
 ## `.trs' files even exist.
        redo_bases=`for b in $$bases; do \
-                     test -f $$b.trs && test -r $$b.trs \
-                       && test -f $$b.log && test -r $$b.log \
-                       || echo $$b; \
+                     f_ok $$b.trs && f_ok $$b.log || echo $$b; \
                    done`; \
        if test -n "$$redo_bases"; then \
 ## Uh-oh, either some `.log' files were unreadable, or some `.trs' files
@@ -168,10 +169,10 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        st=0; \
        for b in $$redo_bases; do \
          for e in trs log; do \
-           if test ! -f $$b.$$e || test ! -r $$b.$$e; then \
+           f_ok $$b.$$e || { \
              echo "fatal: making $@: failed to create $$b.$$e" >&2; \
              st=1; \
-           fi; \
+           }; \
          done; \
        done; \
        test $$st -eq 0 || exit 1; \
@@ -362,7 +363,7 @@ recheck recheck-html:
        list=`for b in $$bases; do                                      \
 ## Skip tests that haven't been run, but recover gracefully from deleted
 ## `.trs' files.
-               test ! -f $$b.trs && test ! -f $$b.log && continue;     \
+               test -f $$b.trs || test -f $$b.log || continue;         \
 ## FIXME: one fork per test -- this is horrendously inefficient!
                grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$b.trs            \
                  >/dev/null 2>&1 || echo $$b.log;                      \
diff --git a/lib/tap-driver b/lib/tap-driver
index 14f0507..b0c61e5 100755
--- a/lib/tap-driver
+++ b/lib/tap-driver
@@ -101,6 +101,13 @@ sub bool_opt ($$)
     }
 }
 
+# Convert a boolean to a "yes"/"no" string.
+sub yn ($)
+{
+  my $bool = shift;
+  return $bool ? "yes" : "no";
+}
+
 TAP_PEEKING :
 {
   my @tap_lines = ();
@@ -169,12 +176,9 @@ TEST_RESULTS :
 sub write_test_results ()
 {
   open RES, ">", $trs_file or die "opening $trs_file: $!\n";
-  print RES ":global-test-result: " . 
-            get_global_test_result . "\n";
-  print RES ":recheck: " .
-            (must_recheck ? "yes" : "no") . "\n";
-  print RES ":copy-in-global-log: " .
-            (copy_in_global_log ? "yes" : "no") . "\n";
+  print RES ":global-test-result: " . get_global_test_result . "\n";
+  print RES ":recheck: " . yn (must_recheck) . "\n";
+  print RES ":copy-in-global-log: " . yn (copy_in_global_log) . "\n";
   foreach my $result (get_test_results)
     {
       print RES ":test-result: $result\n";
diff --git a/lib/test-driver b/lib/test-driver
index c1645a2..89f6914 100755
--- a/lib/test-driver
+++ b/lib/test-driver
@@ -31,12 +31,6 @@ scriptversion=2011-08-04.22; # UTC
 # helps a lot in preventing typo-related bugs.
 set -u
 
-fatal ()
-{
-  echo "$0: fatal: $*" >&2
-  exit 1
-}
-
 usage_error ()
 {
   echo "$0: $*" >&2
@@ -56,10 +50,10 @@ END
 }
 
 # TODO: better error handling in option parsing (in particular, ensure
-# TODO: $logfile, $trsfile and $test_name are defined).
+# TODO: $log_file, $trs_file and $test_name are defined).
 test_name= # Used for reporting.
-logfile=   # Where to save the output of the test script.
-trsfile=   # Where to save the result(s) the test script.
+log_file=  # Where to save the output of the test script.
+trs_file=  # Where to save the metadata of the test run.
 expect_failure=no
 color_tests=no
 enable_hard_errors=yes
@@ -68,8 +62,8 @@ while test $# -gt 0; do
   --help) print_usage; exit $?;;
   --version) echo "test-driver $scriptversion"; exit $?;;
   --test-name) test_name=$2; shift;;
-  --log-file) logfile=$2; shift;;
-  --trs-file) trsfile=$2; shift;;
+  --log-file) log_file=$2; shift;;
+  --trs-file) trs_file=$2; shift;;
   --color-tests) color_tests=$2; shift;;
   --expect-failure) expect_failure=$2; shift;;
   --enable-hard-errors) enable_hard_errors=$2; shift;;
@@ -90,14 +84,14 @@ else
   red= grn= lgn= blu= mgn= std=
 fi
 
-do_exit='rm -f $logfile; (exit $st); exit $st'
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
 trap "st=129; $do_exit" 1
 trap "st=130; $do_exit" 2
 trap "st=141; $do_exit" 13
 trap "st=143; $do_exit" 15
 
 # Test script is run here.
-"$@" >$logfile 2>&1
+"$@" >$log_file 2>&1
 estatus=$?
 if test $enable_hard_errors = no && test $estatus -eq 99; then
   estatus=1
@@ -116,10 +110,10 @@ esac
 echo "${col}${res}${std}: $test_name"
 
 # Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trsfile
-echo ":global-test-result: $res" >> $trsfile
-echo ":recheck: $recheck" >> $trsfile
-echo ":copy-in-global-log: $gcopy" >> $trsfile
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
 
 # Local Variables:
 # mode: shell-script
diff --git a/tests/Makefile.in b/tests/Makefile.in
index ee0d378..a3a356a 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -180,7 +180,6 @@ TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) 
$(AM_TEST_LOG_FLAGS) \
 TEST_LOGS = $(am__test_logs2:.tap.log=.log)
 TAP_LOG_COMPILE = $(TAP_LOG_COMPILER) $(AM_TAP_LOG_FLAGS) \
        $(TAP_LOG_FLAGS)
-TEST_LOGS_TMP = $(TEST_LOGS:.log=.log-t)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
@@ -1496,12 +1495,11 @@ cscope cscopelist:
 
 $(TEST_SUITE_LOG): $(TEST_LOGS)
        @$(am__sh_e_setup); $(am__tty_colors); \
+       f_ok () { test -f "$$1" && test -r "$$1"; }; \
        bases='$(am__TEST_BASES)'; \
        ws='[   ]'; \
        redo_bases=`for b in $$bases; do \
-                     test -f $$b.trs && test -r $$b.trs \
-                       && test -f $$b.log && test -r $$b.log \
-                       || echo $$b; \
+                     f_ok $$b.trs && f_ok $$b.log || echo $$b; \
                    done`; \
        if test -n "$$redo_bases"; then \
          redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
@@ -1512,10 +1510,10 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        st=0; \
        for b in $$redo_bases; do \
          for e in trs log; do \
-           if test ! -f $$b.$$e || test ! -r $$b.$$e; then \
+           f_ok $$b.$$e || { \
              echo "fatal: making $@: failed to create $$b.$$e" >&2; \
              st=1; \
-           fi; \
+           }; \
          done; \
        done; \
        test $$st -eq 0 || exit 1; \
@@ -1646,7 +1644,7 @@ recheck recheck-html:
        target=`echo $@ | sed 's,^re,,'`;                               \
        bases='$(am__TEST_BASES)';                                      \
        list=`for b in $$bases; do                                      \
-               test ! -f $$b.trs && test ! -f $$b.log && continue;     \
+               test -f $$b.trs || test -f $$b.log || continue;         \
                grep "^$$ws*:recheck:$$ws*no$$ws*$$" $$b.trs            \
                  >/dev/null 2>&1 || echo $$b.log;                      \
              done | tr '\012\015' '  '`;                               \
@@ -1719,7 +1717,6 @@ install-strip:
        fi
 mostlyclean-generic:
        -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-       -test -z "$(TEST_LOGS_TMP)" || rm -f $(TEST_LOGS_TMP)
        -test -z "$(TEST_SUITE_HTML)" || rm -f $(TEST_SUITE_HTML)
        -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
        -test -z "$(am__TEST_BASES:=.trs)" || rm -f $(am__TEST_BASES:=.trs)
diff --git a/tests/parallel-tests-interrupt.test 
b/tests/parallel-tests-interrupt.test
index a7c1ba4..ed40412 100755
--- a/tests/parallel-tests-interrupt.test
+++ b/tests/parallel-tests-interrupt.test
@@ -30,8 +30,8 @@ cat > Makefile.am << 'END'
 TESTS = foo.test
 ## Provide more debugging info.
 TEST_LOG_COMPILER = $(SHELL) -x
-## Rut required by foo.test; see below.
-AM_TESTS_ENVIRONMENT = 9>&2
+## Required by foo.test; see below.
+AM_TESTS_FD_REDIRECT = 9>&2
 END
 
 # This is hacky and ugly, but has the great advantage of avoiding us a lot


hooks/post-receive
-- 
GNU Automake



reply via email to

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