TESTS= TEST_LOGS=$(TESTS:=.log) would otherwise barf with an error that the file `.log' could not be remade. Since this file name also looks like a single suffix rule, there is no way to portably write a rule to ignore it. So in this case we have to overwrite TESTS.
Cheers, Ralf Fix parallel-tests with empty $(TESTS) for BSD make. * lib/am/check.am [PARALLEL_TESTS] ($(TEST_SUITE_LOG)): Ignore empty line stemming from empty $(TEST_LOGS), to avoid counting zero tests as one. (check-TESTS): If `$(TESTS)' is empty, override TEST_LOGS to be empty, rather than `.log', for BSD make. * tests/parallel-tests6.test: New test. * tests/Makefile.am: Update. diff --git a/lib/am/check.am b/lib/am/check.am index 9a3c256..5a2de7d 100644 --- a/lib/am/check.am +++ b/lib/am/check.am @@ -145,7 +145,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS) results=`for f in $$list; do \ read line < $$f && echo "$$line" || echo FAIL; \ done`; \ - all=`echo "$$results" | wc -l | sed -e 's/^[ ]*//'`; \ + all=`echo "$$results" | sed '/^$$/d' | wc -l | sed -e 's/^[ ]*//'`; \ fail=`echo "$$results" | grep -c '^FAIL'`; \ pass=`echo "$$results" | grep -c '^PASS'`; \ skip=`echo "$$results" | grep -c '^SKIP'`; \ @@ -223,7 +223,10 @@ check-TESTS: && test -n "$(TEST_SUITE_LOG)$(TEST_LOGS)"; then \ rm -f $(TEST_SUITE_LOG) $(TEST_LOGS); \ fi - @$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) + @set_logs=; if test "X$(TEST_LOGS)" = X.log; then \ + set_logs=TEST_LOGS=; \ + fi; \ + $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) $$set_logs .MAKE: check-TESTS diff --git a/tests/Makefile.am b/tests/Makefile.am index 2504941..e0b7f23 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -485,6 +485,7 @@ parallel-tests2.test \ parallel-tests3.test \ parallel-tests4.test \ parallel-tests5.test \ +parallel-tests6.test \ parse.test \ percent.test \ percent2.test \ diff --git a/tests/parallel-tests6.test b/tests/parallel-tests6.test new file mode 100755 index 0000000..59a0b0e --- /dev/null +++ b/tests/parallel-tests6.test @@ -0,0 +1,43 @@ +#! /bin/sh +# Copyright (C) 2009 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 3, 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/>. + +# Check parallel-tests features: +# - empty TESTS +# BSD make will expand `$(TESTS:=.log)' to `.log' unless overridden. + +. ./defs-p || Exit 1 +set -e + +cat >> configure.in << 'END' +AC_OUTPUT +END + +cat > Makefile.am << 'END' +TESTS = +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE -a + +unset TESTS || : + +./configure +$MAKE check >stdout || { cat stdout; Exit 1; } +cat stdout +grep '0 tests' stdout + +Exit 0