On 02/14/2012 03:06 PM, Stefano Lattarini wrote:
>
> This patch fixes the described problem, but then, ouch :-(, it breaks
> the 'dollar.test' test case, which checks that automake supports files
> with `$' characters in their names (Java people need this).  Any idea
> on what we should do?
> 
I now think we should just tweak the affected test a bit.  What about
the attached patch?  I will push shortly if there is no objection.

Regards,
  Stefano
>From 02ce5d5a0ce42563e8aa8ea03a977d35f3a30f72 Mon Sep 17 00:00:00 2001
Message-Id: <02ce5d5a0ce42563e8aa8ea03a977d35f3a30f72.1329244052.git.stefano.lattar...@gmail.com>
From: Stefano Lattarini <stefano.lattar...@gmail.com>
Date: Tue, 14 Feb 2012 19:26:29 +0100
Subject: [PATCH] tests: avoid ksh bug for wildcards in EXTRA_DIST

Some shells, like NetBSD 5.1 /bin/ksh, have a bug that causes
wildcards resulting from an unquoted parameter expansion not to
be expanded as expected in some cases:

    $ touch a b c d
    $ /bin/sh -c 'var="[ab]" && echo $var' # As expected.
    a b
    $ /bin/ksh -c 'var="[ab]" && echo $var' # Oops.
    [ab]
    $ /bin/ksh -c 'var="?" && echo $var' # But this as expected.
    a b c d

This was causing a failure in our testsuite.  Work around that.

See also:
<http://lists.gnu.org/archive/html/automake-patches/2012-02/msg00149.html>

* tests/extra11.test: Work around the described issue by using the
$(wildcard) builtin in the EXTRA_DIST definition.  This is not a
problem, since this test was assuming GNU make anyway.  Since we are
at it, enhance coverage a little by also running "make distcheck".
* tests/extra10.test: Similarly, enhance coverage by also running
"make distcheck", and fix a minor bug in the process.  But continue
using a "bare" wildcard expression in EXTRA_DIST, without involving
the $(wildcard) builtin, to ensure coverage of similar usages "in
the wild".
---
 tests/extra10.test |   14 ++++++++++++--
 tests/extra11.test |   26 ++++++++++++++++++++++++--
 2 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/tests/extra10.test b/tests/extra10.test
index f44b1e2..a635f9c 100755
--- a/tests/extra10.test
+++ b/tests/extra10.test
@@ -16,6 +16,8 @@
 
 # Check that wildcards in EXTRA_DIST are honoured.
 # Suggested by observations from Braden McDaniel.
+# See also sister test 'extra11.test', that check a similar usage
+# with the involvement of the $(wildcard) GNU make builtin.
 
 required=GNUmake
 . ./defs || Exit 1
@@ -23,12 +25,16 @@ required=GNUmake
 echo AC_OUTPUT >> configure.in
 
 cat > Makefile.am <<'END'
-EXTRA_DIST=*.foo
+EXTRA_DIST = *.foo
 .PHONY: test
 test: distdir
 	diff a.foo $(distdir)/a.foo
 	diff b.foo $(distdir)/b.foo
 	test ! -r $(distdir)/c.bar
+check-local:
+	test -f $(srcdir)/a.foo
+	test -f $(srcdir)/b.foo
+	test ! -r $(srcdir)/c.bar
 END
 
 $ACLOCAL
@@ -37,6 +43,10 @@ $AUTOCONF
 
 echo aaa > a.foo
 echo bbb > b.foo
-echo ccc > c.foo
+echo ccc > c.bar
 ./configure
 $MAKE test
+
+$MAKE distcheck
+
+:
diff --git a/tests/extra11.test b/tests/extra11.test
index fb7c559..38b1654 100755
--- a/tests/extra11.test
+++ b/tests/extra11.test
@@ -23,7 +23,9 @@ required=GNUmake
 echo AC_OUTPUT >> configure.in
 
 cat > Makefile.am <<'END'
-EXTRA_DIST = [!c-z].t d.t [ab].dir foo.* *zardoz*
+AUTOMAKE_OPTIONS = -Wno-portability
+
+EXTRA_DIST = $(wildcard [!c-z].t d.t [ab].dir foo.* *zardoz*)
 
 .PHONY: prereq
 prereq:
@@ -45,6 +47,7 @@ prereq:
 
 .PHONY: test
 test: distdir
+	ls -l $(distdir) $(distdir)/*.dir ;: For debugging.
 	diff a.t $(distdir)/a.t
 	diff b.t $(distdir)/b.t
 	test ! -r $(distdir)/c.t
@@ -59,6 +62,22 @@ test: distdir
 	diff foo.bar $(distdir)/foo.bar
 	test ! -r $(distdir)/foo
 	diff _zardoz_ $(distdir)/_zardoz_
+check-local:
+	ls -l . *.dir ;: For debugging.
+	test -f $(srcdir)/a.t
+	test -f $(srcdir)/b.t
+	test ! -r $(srcdir)/c.t
+	test -f $(srcdir)/d.t
+	test ! -r $(srcdir)/m.t
+	test ! -r $(srcdir)/z.t
+	test -f $(srcdir)/a.dir/f1
+	test -f $(srcdir)/a.dir/f2
+	test -f $(srcdir)/b.dir/f
+	test ! -r $(srcdir)/c.dir
+	test -f $(srcdir)/foo.x
+	test -f $(srcdir)/foo.bar
+	test ! -r $(srcdir)/foo
+	test -f $(srcdir)/_zardoz_
 END
 
 $ACLOCAL
@@ -67,5 +86,8 @@ $AUTOCONF
 
 ./configure
 $MAKE prereq
-ls -l . *.dir
+ls -l . *.dir # For debugging.
 $MAKE test
+$MAKE distcheck
+
+:
-- 
1.7.7.3

Reply via email to