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.11-1067


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, master, updated. v1.11-1067-g64aebd6
Date: Fri, 07 Oct 2011 12:10:37 +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=64aebd615605c46e9b969aab0e6fbfb58863cb81

The branch, master has been updated
       via  64aebd615605c46e9b969aab0e6fbfb58863cb81 (commit)
       via  ba0c477b275aaae0e4f77003ac96f4cc2ec12ebf (commit)
      from  30eb17ff6ebb7d3c3904f7f65ded96a9568dbcd7 (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                                          |   12 ++++
 NEWS                                               |   11 ++--
 automake.in                                        |   15 ++++-
 tests/Makefile.am                                  |    1 +
 tests/Makefile.in                                  |    1 +
 ...tests-subdir.test => test-extensions-cond.test} |   65 +++++++++++++------
 6 files changed, 76 insertions(+), 29 deletions(-)
 copy tests/{parallel-tests-subdir.test => test-extensions-cond.test} (54%)

diff --git a/ChangeLog b/ChangeLog
index 8f200e4..4a470bd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2011-10-07  Stefano Lattarini  <address@hidden>
+
+       parallel-tests: warn on conditional TEST_EXTENSIONS definition
+       Before this change, automake would have still bailed out, but
+       with a confusing error message (about an invalid redefinition
+       of TEST_EXTENSIONS).
+       * automake.in (handle_tests): Warn explicitly if TEST_EXTENSIONS
+       has conditional contents.
+       * tests/test-extensions-con.test: New test.
+       * tests/Makefile.am (TESTS): Add it.
+       * NEWS: Update.
+
 2011-10-06  Stefano Lattarini  <address@hidden>
 
        parallel-tests: don't allow @substitutions@ in TEST_EXTENSIONS
diff --git a/NEWS b/NEWS
index d43efe0..b902a6a 100644
--- a/NEWS
+++ b/NEWS
@@ -84,11 +84,12 @@ Bugs fixed in 1.11a:
     does not report spurious successes when used with concurrent FreeBSD
     make (e.g., "make check -j3").
 
-  - Automake now explicitly rejects invalid entries in TEST_EXTENSIONS when
-    the parallel-tests diver is in use, instead of issuing confusing and
-    apparently unrelated error messages (about "non-POSIX variable name"
-    or "bad characters in variable name"), or even, in some situations,
-    producing broken `Makefile.in' files.
+  - When the parallel-tests driver is in use, automake now explicitly
+    rejects invalid entries and conditional contents in TEST_EXTENSIONS,
+    instead of issuing confusing and apparently unrelated error messages
+    (e.g., "non-POSIX variable name", "bad characters in variable name",
+    or "redefinition of TEST_EXTENSIONS), or even, in some situations,
+    silently producing broken `Makefile.in' files.
 
   - The `silent-rules' option now also silences all compile rules if dependency
     tracking is disabled.  Also, when `silent-rules' is not used, the output 
from
diff --git a/automake.in b/automake.in
index b69884a..00fcbf1 100644
--- a/automake.in
+++ b/automake.in
@@ -4848,9 +4848,18 @@ sub handle_tests
              $at_exeext = subst ('EXEEXT');
              $suff = $at_exeext  . ' ' . $suff;
            }
-         define_variable ('TEST_EXTENSIONS', $suff, INTERNAL);
-         # FIXME: this mishandles conditions.
-         my $var = rvar 'TEST_EXTENSIONS';
+          if (! var 'TEST_EXTENSIONS')
+            {
+             define_variable ('TEST_EXTENSIONS', $suff, INTERNAL);
+            }
+          my $var = var 'TEST_EXTENSIONS';
+          # Currently, we are not able to deal with conditional contents
+          # in TEST_EXTENSIONS.
+          if ($var->has_conditional_contents)
+           {
+            msg_var 'unsupported', $var,
+                     "`TEST_EXTENSIONS' cannot have conditional contents";
+           }
          my @test_suffixes = $var->value_as_list_recursive;
           if ((my @invalid_test_suffixes =
                   grep { !is_valid_test_extension $_ } @test_suffixes) > 0)
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 530024b..6b14a30 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -757,6 +757,7 @@ parallel-tests-cmdline-override.test \
 parallel-tests-log-compiler-example.test \
 parallel-tests-fork-bomb.test \
 test-extensions.test \
+test-extensions-cond.test \
 parse.test \
 percent.test \
 percent2.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 5f78d77..2bc73d7 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1033,6 +1033,7 @@ parallel-tests-cmdline-override.test \
 parallel-tests-log-compiler-example.test \
 parallel-tests-fork-bomb.test \
 test-extensions.test \
+test-extensions-cond.test \
 parse.test \
 percent.test \
 percent2.test \
diff --git a/tests/parallel-tests-subdir.test b/tests/test-extensions-cond.test
similarity index 54%
copy from tests/parallel-tests-subdir.test
copy to tests/test-extensions-cond.test
index 879c858..26409a8 100755
--- a/tests/parallel-tests-subdir.test
+++ b/tests/test-extensions-cond.test
@@ -14,36 +14,59 @@
 # 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 that the parallel-tests driver creates parent directories for
-# the log files when needed.
+# Expose bug in conditional definition of TEST_EXTENSIONS.
 
 parallel_tests=yes
 . ./defs || Exit 1
 
+set -e
+
 cat >> configure.in << 'END'
-AC_OUTPUT
+AM_CONDITIONAL([COND], [:])
+AM_CONDITIONAL([COND2], [:])
+END
+
+$ACLOCAL
+
+cat > 1.am << 'END'
+TESTS =
+if COND
+## lineno 4
+TEST_EXTENSIONS = .foo
+endif
+END
+
+cat > 2.am << 'END'
+TESTS =
+## lineno 3
+TEST_EXTENSIONS = .foo
+if COND
+# Do nothing.
+else
+TEST_EXTENSIONS += .bar
+endif
 END
 
-cat > Makefile.am << 'END'
-TESTS = dir1/foo.test dir2/dir3/foo.test
-TEST_LOG_COMPILER = sh
+cat > 3.am << 'END'
+TESTS =
+if COND
+if !COND2
+TESTS = x
+else
+## lineno 7
+TEST_EXTENSIONS = .foo
+endif
+endif
 END
 
-mkdir dir1 dir2 dir2/dir3
-echo : > dir1/foo.test
-echo : > dir2/dir3/foo.test
+: > test-driver
 
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE -a
-
-mkdir build
-cd build
-../configure
-$MAKE check
-find . # For debugging.
-test -f test-suite.log
-test -f dir1/foo.log
-test -f dir2/dir3/foo.log
+for i in 1 2 3; do
+  AUTOMAKE_fails $i
+  lineno=`sed -n 's/^## lineno //p' $i.am` \
+    && test 0 -lt "$lineno" \
+    || Exit 99
+  grep "^$i\\.am:$lineno:.*TEST_EXTENSIONS.*conditional content" stderr
+done
 
 :


hooks/post-receive
-- 
GNU Automake



reply via email to

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