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-498-g


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-498-gba0c477
Date: Fri, 07 Oct 2011 09:43:12 +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=ba0c477b275aaae0e4f77003ac96f4cc2ec12ebf

The branch, maint has been updated
       via  ba0c477b275aaae0e4f77003ac96f4cc2ec12ebf (commit)
      from  d710255c09afd2d6e06d72259816988a0a79ea18 (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 ba0c477b275aaae0e4f77003ac96f4cc2ec12ebf
Author: Stefano Lattarini <address@hidden>
Date:   Fri Oct 7 11:08:15 2011 +0200

    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.

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

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} |   63 +++++++++++++-------
 6 files changed, 74 insertions(+), 29 deletions(-)
 copy tests/{parallel-tests-subdir.test => test-extensions-cond.test} (54%)

diff --git a/ChangeLog b/ChangeLog
index d203a4d..171139c 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 4b4a5e8..7e30ed0 100644
--- a/NEWS
+++ b/NEWS
@@ -49,11 +49,12 @@ Bugs fixed in 1.11.0a:
     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 0080df8..516e594 100755
--- a/automake.in
+++ b/automake.in
@@ -4982,9 +4982,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 bf17aea..884ea65 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -635,6 +635,7 @@ parallel-tests-log-override-2.test \
 parallel-tests-log-override-recheck.test \
 parallel-tests-log-compiler-example.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 f66a9c7..f1bfcdd 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -919,6 +919,7 @@ parallel-tests-log-override-2.test \
 parallel-tests-log-override-recheck.test \
 parallel-tests-log-compiler-example.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 18695fe..26409a8 100755
--- a/tests/parallel-tests-subdir.test
+++ b/tests/test-extensions-cond.test
@@ -14,8 +14,7 @@
 # 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
@@ -23,29 +22,51 @@ parallel_tests=yes
 set -e
 
 cat >> configure.in << 'END'
-AC_OUTPUT
+AM_CONDITIONAL([COND], [:])
+AM_CONDITIONAL([COND2], [:])
 END
 
-cat > Makefile.am << 'END'
-TESTS = dir1/foo.test dir2/dir3/foo.test
-TEST_LOG_COMPILER = sh
+$ACLOCAL
+
+cat > 1.am << 'END'
+TESTS =
+if COND
+## lineno 4
+TEST_EXTENSIONS = .foo
+endif
 END
 
-mkdir dir1 dir2 dir2/dir3
-echo : > dir1/foo.test
-echo : > dir2/dir3/foo.test
+cat > 2.am << 'END'
+TESTS =
+## lineno 3
+TEST_EXTENSIONS = .foo
+if COND
+# Do nothing.
+else
+TEST_EXTENSIONS += .bar
+endif
+END
 
-$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
+cat > 3.am << 'END'
+TESTS =
+if COND
+if !COND2
+TESTS = x
+else
+## lineno 7
+TEST_EXTENSIONS = .foo
+endif
+endif
+END
+
+: > test-driver
+
+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]