automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11b-35-


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11b-35-gf46359b
Date: Wed, 18 Apr 2012 11:29: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=f46359b42790945e42e78a620e651ce66c2b8833

The branch, master has been updated
       via  f46359b42790945e42e78a620e651ce66c2b8833 (commit)
      from  0c2cc2c9d171ef21ef54c87569837ff41cd09a9d (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 f46359b42790945e42e78a620e651ce66c2b8833
Author: Stefano Lattarini <address@hidden>
Date:   Wed Apr 18 11:40:15 2012 +0200

    parallel-tests: 'recheck' must depend on 'all'
    
    Fixes automake bug#11252.
    
    When a developer experience one or more failures in the testsuite, a good
    workflow is for him to modify its program's sources to fix the bug thus
    revealed, run "make recheck" to verify that the change has indeed solved
    the testsuite failures previously experienced, and then run "make check"
    to verify that the change has not introduced any new failure or regression.
    
    Unfortunately, this apparently natural workflow couldn't have worked until
    now, since the Automake-provided 'recheck' target (which didn't depend on
    'all') wouldn't have causes the program to be recompiled, and the failed
    tests would have thus been run with the older, buggy version of the
    program, failing the same way as before.
    
    * lib/am/check.am (recheck): Depend on 'all'.
    * t/parallel-tests-recheck-depends-on-all.sh: New test.
    * t/list-of-tests.mk: Add it.
    * NEWS: Update.
    
    Signed-off-by: Stefano Lattarini <address@hidden>

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

Summary of changes:
 NEWS                                       |    4 +
 lib/am/check.am                            |    3 +-
 t/list-of-tests.mk                         |    1 +
 t/parallel-tests-recheck-depends-on-all.sh |   93 ++++++++++++++++++++++++++++
 4 files changed, 100 insertions(+), 1 deletions(-)
 create mode 100755 t/parallel-tests-recheck-depends-on-all.sh

diff --git a/NEWS b/NEWS
index 142f805..bb2480f 100644
--- a/NEWS
+++ b/NEWS
@@ -92,6 +92,10 @@ New in 1.11c:
     testsuite harness.  This is still the default at the moment, but it
     might change in future versions.
 
+  - The 'recheck' target (provided by the parallel testsuite harness) now
+    depends on the 'all' target.  This allows for a better user-experience
+    in test-driven development.  See automake bug#11252.
+
   - Test scripts that exit with status 99 to signal an "hard error" (e.g.,
     and unexpected or internal error, or a failure to set up the test case
     scenario) have their outcome reported as an 'ERROR' now.  Previous
diff --git a/lib/am/check.am b/lib/am/check.am
index 0ce064d..7866570 100644
--- a/lib/am/check.am
+++ b/lib/am/check.am
@@ -367,7 +367,8 @@ check-TESTS recheck:
        $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"
 
 ## Recheck must depend on $(check_SCRIPTS), $(check_PROGRAMS), etc.
-recheck: %CHECK_DEPS%
+## It must also depend on the 'all' target.  See automake bug#11252.
+recheck: all %CHECK_DEPS%
 
 AM_RECURSIVE_TARGETS += check recheck
 
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index ea77bc1..4562828 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -737,6 +737,7 @@ t/parallel-tests6.sh \
 t/parallel-tests8.sh \
 t/parallel-tests9.sh \
 t/parallel-tests10.sh \
+t/parallel-tests-recheck-depends-on-all.sh \
 t/parallel-tests-exeext.sh \
 t/parallel-tests-suffix.sh \
 t/parallel-tests-suffix-prog.sh \
diff --git a/t/parallel-tests-recheck-depends-on-all.sh 
b/t/parallel-tests-recheck-depends-on-all.sh
new file mode 100755
index 0000000..cec66ae
--- /dev/null
+++ b/t/parallel-tests-recheck-depends-on-all.sh
@@ -0,0 +1,93 @@
+#! /bin/sh
+# Copyright (C) 2012 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/>.
+
+# The parallel-tests 'recheck' target must depend on the 'all' target.
+# See automake bug#11252.
+
+am_parallel_tests=yes
+required=cc
+. ./defs || Exit 1
+
+cat >> configure.ac << 'END'
+AC_PROG_CC
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+all-local:
+       test ! -f status || echo okokok > status
+bin_PROGRAMS = foo
+TESTS = a.test b.test c.test
+END
+
+cat > foo.c << 'END'
+#include <stdio.h>
+int main (void)
+{
+  printf ("failure :-(" "\n");
+  return 1;
+}
+END
+
+cat > a.test << 'END'
+#!/bin/sh
+exit 0
+END
+
+cat > b.test << 'END'
+#!/bin/sh
+grep okokok status
+END
+
+cat > c.test << 'END'
+#!/bin/sh
+./foo
+END
+
+chmod a+x *.test
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a
+./configure
+
+$MAKE check >stdout && { cat stdout; Exit 1; }
+cat stdout
+count_test_results total=3 pass=1 fail=2 skip=0 xfail=0 xpass=0 error=0
+test ! -f status
+
+$sleep
+: > status
+cat > foo.c << 'END'
+#include <stdio.h>
+int main (void)
+{
+  printf ("success :-)" "\n");
+  return 0;
+}
+END
+
+$MAKE recheck >stdout || { cat stdout; Exit 1; }
+cat stdout
+count_test_results total=2 pass=2 fail=0 skip=0 xfail=0 xpass=0 error=0
+grep '^PASS: b\.test$' stdout
+grep '^PASS: c\.test$' stdout
+
+$MAKE recheck >stdout || { cat stdout; Exit 1; }
+cat stdout
+count_test_results total=0 pass=0 fail=0 skip=0 xfail=0 xpass=0 error=0
+
+:


hooks/post-receive
-- 
GNU Automake



reply via email to

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