diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-04-18 11:40:15 +0200 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2012-04-18 11:40:15 +0200 |
commit | f46359b42790945e42e78a620e651ce66c2b8833 (patch) | |
tree | e5d28d358e38fdcb54af3a2a00832abef4849d09 /t/parallel-tests-recheck-depends-on-all.sh | |
parent | 0c2cc2c9d171ef21ef54c87569837ff41cd09a9d (diff) | |
download | automake-f46359b42790945e42e78a620e651ce66c2b8833.tar.gz |
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 <stefano.lattarini@gmail.com>
Diffstat (limited to 't/parallel-tests-recheck-depends-on-all.sh')
-rwxr-xr-x | t/parallel-tests-recheck-depends-on-all.sh | 93 |
1 files changed, 93 insertions, 0 deletions
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 000000000..cec66ae24 --- /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 + +: |