automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-355-g


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-355-g305f912
Date: Sat, 23 Apr 2011 21:52:53 +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=305f9120306aab1343da724696aaa88c7f0dd0ab

The branch, maint has been updated
       via  305f9120306aab1343da724696aaa88c7f0dd0ab (commit)
       via  d8f365af42b559f1ae46544c2238febfca664f3a (commit)
      from  e9bb4e913957b0388182de7350e198d6fe74bf02 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                    |   18 ++++++++++++++++
 tests/Makefile.am            |    1 +
 tests/Makefile.in            |    1 +
 tests/README                 |    5 ++++
 tests/defs.in                |   38 +++++++++++++++++++++++----------
 tests/self-check-report.test |   47 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 98 insertions(+), 12 deletions(-)
 create mode 100755 tests/self-check-report.test

diff --git a/ChangeLog b/ChangeLog
index 1764e86..91c1cdf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
 2011-04-23  Stefano Lattarini  <address@hidden>
 
+       test: self check subroutines for skipping/failing of tests
+       * tests/self-check-report.test: New test.
+       * tests/Makefile.am (TESTS): Update.
+
+2011-04-23  Jim Meyering  <address@hidden>
+           Stefano Lattarini  <address@hidden>
+
+       test defs: new subroutines for test skipping/failing
+       * tests/defs.in (Exit): Move definition of this function earlier.
+       (warn_, skip_, fail_, framework_failure_): New functions, inspired
+       to the homonyms in gnulib's tests/init.sh.
+       ($stderr_fileno_): New global variable, used by the new functions
+       above.
+       * tests/README: Updated.
+       From a suggestion by Ralf Wildenhues.
+
+2011-04-23  Stefano Lattarini  <address@hidden>
+
        tests: fix typo (copy & paste blunder) in heading comment
        * tests/maintclean-vpath.test: Correctly refer to the sister test
        as `maintclean.test', not as `maintclean-vpath.test'.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index b1401e9..49d8942 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -47,6 +47,7 @@ TESTS_ENVIRONMENT = \
 
 TESTS = \
 self-check-env-sanitize.test \
+self-check-report.test \
 aclibobj.test \
 aclocal.test \
 aclocal3.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 96ef92b..78d723c 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -318,6 +318,7 @@ TESTS_ENVIRONMENT = \
 
 TESTS = \
 self-check-env-sanitize.test \
+self-check-report.test \
 aclibobj.test \
 aclocal.test \
 aclocal3.test \
diff --git a/tests/README b/tests/README
index 93f9cbf..26ce3ff 100644
--- a/tests/README
+++ b/tests/README
@@ -100,6 +100,11 @@ Do
   Include ./defs in every test script (see existing tests for examples
   of how to do this).
 
+  Use the `skip_' function to skip tests, with a meaningful message if
+  possible.  Where convenient, use the `warn_' function to print generic
+  warnings, and the `fail_' function for test failures.  Finally, you may
+  use the `framework_fail_' function for hard errors.
+
   For tests that use the `parallel-tests' Automake option, set the shell
   variable `parallel_tests' to "yes" before including ./defs.  Also,
   use for them a name that ends in `-p.test' and does not clash with any
diff --git a/tests/defs.in b/tests/defs.in
index ef35d9f..4e0db16 100644
--- a/tests/defs.in
+++ b/tests/defs.in
@@ -122,6 +122,32 @@ echo "$PATH"
 # (See note about `export' in the Autoconf manual.)
 export PATH
 
+# We use a trap below for cleanup.  This requires us to go through
+# hoops to get the right exit status transported through the signal.
+# So use `Exit STATUS' instead of `exit STATUS' inside of the tests.
+# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
+# sh inside this function.
+Exit ()
+{
+  set +e
+  (exit $1)
+  exit $1
+}
+
+# Print warnings (e.g., about skipped and failed tests) to this file
+# number.  Override by putting, say:
+#   stderr_fileno_=9; export stderr_fileno_; exec 9>&2;
+# in the definition of AM_TESTS_ENVIRONMENT.
+# This is useful when using automake's parallel tests mode, to print the
+# reason for skip/failure to console, rather than to the *.log files.
+: ${stderr_fileno_=2}
+
+# Copied from Gnulib's `tests/init.sh'.
+warn_ () { echo "$@" 1>&$stderr_fileno_; }
+fail_ () { warn_ "$me: failed test: $@"; Exit 1; }
+skip_ () { warn_ "$me: skipped test: $@"; Exit 77; }
+framework_failure_ () { warn_ "$me: set-up failure: $@"; Exit 99; }
+
 for tool in : $required
 do
   # Check that each required tool is present.
@@ -278,18 +304,6 @@ case "$srcdir" in
     ;;
 esac
 
-# We use a trap below for cleanup.  This requires us to go through
-# hoops to get the right exit status transported through the signal.
-# So use `Exit STATUS' instead of `exit STATUS' inside of the tests.
-# Turn off errexit here so that we don't trip the bug with OSF1/Tru64
-# sh inside this function.
-Exit ()
-{
-  set +e
-  (exit $1)
-  exit $1
-}
-
 curdir=`pwd`
 testSubDir=$me.dir
 test ! -d $testSubDir || {
diff --git a/tests/self-check-report.test b/tests/self-check-report.test
new file mode 100755
index 0000000..639319a
--- /dev/null
+++ b/tests/self-check-report.test
@@ -0,0 +1,47 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Sanity check for the automake testsuite.
+# Test subroutines to report warnings, and to signal failures, skips
+# and hard errors.
+
+. ./defs || Exit 1
+
+set +e
+
+exec 5>&1
+
+(warn_ foobar) 2>&1 1>&5 | grep '^foobar$'             || Exit 1
+(fail_ foo); test $? -eq 1                             || Exit 1
+(fail_ foo) 2>&1 1>&5 | grep "^$me: failed test: foo"  || Exit 1
+(skip_ foo); test $? -eq 77                            || Exit 1
+(skip_ foo) 2>&1 1>&5 | grep "^$me: skipped test: foo" || Exit 1
+(framework_failure_ foo); test $? -eq 99               || Exit 1
+(framework_failure_ foo) 2>&1 1>&5 \
+  | grep "^$me: set-up failure: foo"                   || Exit 1
+
+stderr_fileno_=6
+
+(warn_ foobar) 6>&1 1>&5 | grep '^foobar$'             || Exit 1
+(fail_ foo); test $? -eq 1                             || Exit 1
+(fail_ foo) 6>&1 1>&5 | grep "^$me: failed test: foo"  || Exit 1
+(skip_ foo); test $? -eq 77                            || Exit 1
+(skip_ foo) 6>&1 1>&5 | grep "^$me: skipped test: foo" || Exit 1
+(framework_failure_ foo); test $? -eq 99               || Exit 1
+(framework_failure_ foo) 6>&1 1>&5 \
+  | grep "^$me: set-up failure: foo"                   || Exit 1
+
+:


hooks/post-receive
-- 
GNU Automake



reply via email to

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