[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-497-g
From: |
Stefano Lattarini |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-497-gd710255 |
Date: |
Thu, 06 Oct 2011 19:41:24 +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=d710255c09afd2d6e06d72259816988a0a79ea18
The branch, maint has been updated
via d710255c09afd2d6e06d72259816988a0a79ea18 (commit)
via b9b79d887abdc615bae92a9dd79de881664d19d3 (commit)
from 7d40532a3464eee6a26d303c378c44af95075698 (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 d710255c09afd2d6e06d72259816988a0a79ea18
Merge: 7d40532 b9b79d8
Author: Stefano Lattarini <address@hidden>
Date: Thu Oct 6 21:40:17 2011 +0200
Merge branch 'fix-pr9400' into maint
* fix-pr9400:
parallel-tests: don't allow @substitutions@ in TEST_EXTENSIONS
commit b9b79d887abdc615bae92a9dd79de881664d19d3
Author: Stefano Lattarini <address@hidden>
Date: Thu Oct 6 21:30:04 2011 +0200
parallel-tests: don't allow @substitutions@ in TEST_EXTENSIONS
Even after the last commit `v1.11-476-g90bea64', the checks
performed by automake on entries in $(TEST_EXTENSIONS) tried to
allow for @substitited@ stuff. This however ends up allowing
quite brittle setups, which, most importantly, are of no real
practical usefulness anyway. So it's better to just disallow
@substitutions@ in TEST_EXTENSIONS altogether, offering a clear
error message, instead of risking weird bugs and unexpected
behaviors in the generated Makefile.in.
* automake.in ($TEST_EXTENSION_PATTERN): Turned from a regular
expression ...
(is_valid_test_extension): ... into this subroutine. Don't allow
generic @substitutions@ anymore (possibly making an exception for
address@hidden@' under the proper circumstances).
* tests/test-extensions.test: Adjust and extend.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 18 ++++++++++++++++++
automake.in | 19 +++++++++++++++----
tests/test-extensions.test | 21 +++++++++++----------
3 files changed, 44 insertions(+), 14 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index eac0f40..d203a4d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
2011-10-06 Stefano Lattarini <address@hidden>
+ parallel-tests: don't allow @substitutions@ in TEST_EXTENSIONS
+ Even after the last commit `v1.11-476-g90bea64', the checks
+ performed by automake on entries in $(TEST_EXTENSIONS) tried to
+ allow for @substitited@ stuff. This however ends up allowing
+ quite brittle setups, which, most importantly, are of no real
+ practical usefulness anyway. So it's better to just disallow
+ @substitutions@ in TEST_EXTENSIONS altogether, offering a clear
+ error message, instead of risking weird bugs and unexpected
+ behaviors in the generated Makefile.in.
+ * automake.in ($TEST_EXTENSION_PATTERN): Turned from a regular
+ expression ...
+ (is_valid_test_extension): ... into this subroutine. Don't allow
+ generic @substitutions@ anymore (possibly making an exception for
+ address@hidden@' under the proper circumstances).
+ * tests/test-extensions.test: Adjust and extend.
+
+2011-10-06 Stefano Lattarini <address@hidden>
+
tests: fix spurious failure in 'insthook.test'
* tests/insthook.test (Makefile.am): Add a proper `uninstall-hook'
target to remove the symlink created by the `install-exec-hook'
diff --git a/automake.in b/automake.in
index a60bc9f..0080df8 100755
--- a/automake.in
+++ b/automake.in
@@ -213,8 +213,6 @@ my $DASH_D_PATTERN = "(^|\\s)-d(\\s|\$)";
# Directories installed during 'install-exec' phase.
my $EXEC_DIR_PATTERN =
'^(?:bin|sbin|libexec|sysconf|localstate|lib|pkglib|.*exec.*)' . "\$";
-# Suffixes that can appear in TEST_EXTENSIONS (parallel-tests support).
-my $TEST_EXTENSION_PATTERN = '^(\.[a-zA-Z_][a-zA-Z0-9_]*|@[a-zA-Z0-9_]+@)$';
# Values for AC_CANONICAL_*
use constant AC_CANONICAL_BUILD => 1;
@@ -4929,6 +4927,19 @@ sub handle_tests_dejagnu
$output_rules .= file_contents ('dejagnu', new Automake::Location);
}
+# is_valid_test_extension ($EXT)
+# ------------------------------
+# Return true if $EXT can appear in $(TEST_EXTENSIONS), return false
+# otherwise.
+sub is_valid_test_extension ($)
+{
+ my $ext = shift;
+ return 1
+ if ($ext =~ /^\.[a-zA-Z_][a-zA-Z0-9_]*$/);
+ return 1
+ if (exists $configure_vars{'EXEEXT'} && $ext eq subst ('EXEEXT'));
+ return 0;
+}
# Handle TESTS variable and other checks.
sub handle_tests
@@ -4976,12 +4987,12 @@ sub handle_tests
my $var = rvar 'TEST_EXTENSIONS';
my @test_suffixes = $var->value_as_list_recursive;
if ((my @invalid_test_suffixes =
- grep { !/$TEST_EXTENSION_PATTERN/o } @test_suffixes) > 0)
+ grep { !is_valid_test_extension $_ } @test_suffixes) > 0)
{
error $var->rdef (TRUE)->location,
"invalid test extensions: @invalid_test_suffixes";
}
- @test_suffixes = grep { /$TEST_EXTENSION_PATTERN/o } @test_suffixes;
+ @test_suffixes = grep { is_valid_test_extension $_ } @test_suffixes;
if ($handle_exeext)
{
unshift (@test_suffixes, $at_exeext)
diff --git a/tests/test-extensions.test b/tests/test-extensions.test
index 1d5872c..901d872b 100755
--- a/tests/test-extensions.test
+++ b/tests/test-extensions.test
@@ -24,29 +24,29 @@ parallel_tests=yes
set -e
cat >> configure.in <<'END'
-AC_SUBST([ext], [".e"])
AC_OUTPUT
END
$ACLOCAL
$AUTOCONF
-cat > Makefile.am << 'END'
-TESTS =
-TEST_EXTENSIONS = .sh .T .t1 ._foo .BAR .x_Y_z ._ @ext@
-END
+valid_extensions='sh T t1 _foo BAR x_Y_z _'
+
+echo TESTS = > Makefile.am
+echo " $valid_extensions" \
+ | sed -e 's/ / ./g' -e 's/^/TEST_EXTENSIONS =/' >> Makefile.am
+cat Makefile.am # For debugging.
$AUTOMAKE
-$EGREP -i 'log|ext' Makefile.in # For debugging.
+grep -i 'log' Makefile.in # For debugging.
-for lc in sh T t1 _foo BAR x_Y_z _; do
+for lc in $valid_extensions; do
uc=`echo $lc | tr '[a-z]' '[A-Z]'`
$FGREP "\$(${uc}_LOG_COMPILER)" Makefile.in
grep "^${uc}_LOG_COMPILE =" Makefile.in
grep "^\.${lc}\.log:" Makefile.in
done
-grep "address@hidden@\.log:" Makefile.in
# The produced Makefile is not broken.
./configure
@@ -54,11 +54,12 @@ $MAKE all check
cat > Makefile.am << 'END'
TESTS = foo.test bar.sh
-TEST_EXTENSIONS = .test mu .x-y a-b .t.1 .sh .6c .0 .11 .@ .t33 .a=b _&_
+TEST_EXTENSIONS = .test mu .x-y a-b .t.1 .sh .6c .0 .11 .= @suf@
address@hidden@
+TEST_EXTENSIONS += .= .t33 address@hidden _&_
END
AUTOMAKE_fails
-for suf in mu .x-y a-b .t.1 .6c .0 .11 '.@' '.a=b' '_&_'; do
+for suf in mu .x-y a-b .t.1 .6c .0 .11 @suf@ address@hidden@ '.=' '_&_'; do
suf2=`printf '%s\n' "$suf" | sed -e 's/\./\\./'`
$EGREP "^Makefile\.am:2:.*invalid test extension.* $suf2( |$)" stderr
done
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, maint, updated. v1.11-497-gd710255,
Stefano Lattarini <=