automake-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Automake-commit] [SCM] GNU Automake branch, yl-work-for-master, updated


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, yl-work-for-master, updated. v1.11-1913-g682d5ce
Date: Sun, 12 Feb 2012 16:23:01 +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=682d5ce5382ab50d63eaf9fe373a1370bb435b6f

The branch, yl-work-for-master has been updated
       via  682d5ce5382ab50d63eaf9fe373a1370bb435b6f (commit)
       via  e0906b7e17bc34b1183d273ca0571c10d5619c08 (commit)
       via  0b34421dc2d78a163ce9eaca41348dd672c302ed (commit)
      from  e6c40d4bba3155a8dd2406806a7be51d3ac73ed0 (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 682d5ce5382ab50d63eaf9fe373a1370bb435b6f
Author: Stefano Lattarini <address@hidden>
Date:   Sun Feb 12 17:16:54 2012 +0100

    tests: workaround for shells with broken 'set -e'
    
    * tests/yacc-cxx.test: Some versions of the BSD shell wrongly bail
    out when the 'errexit' shell flag is active if the left-hand
    command in a "&&" list fails and such list is the *last* command
    of a "for" or "while" loop or of an "if" construct.  Work around
    this issue.
    * tests/check12.test: Likewise.

commit e0906b7e17bc34b1183d273ca0571c10d5619c08
Author: Stefano Lattarini <address@hidden>
Date:   Sun Feb 12 17:02:33 2012 +0100

    tests: avoid spurious failure with non-bison yacc
    
    Issue revealed by a failure on NetBSD 5.1.
    
    * tests/suffix10.tap (Makefile.am): Adjust the rule generating
    the '.y' files so that such files won't use bison-only features.

commit 0b34421dc2d78a163ce9eaca41348dd672c302ed
Author: Stefano Lattarini <address@hidden>
Date:   Sun Feb 12 16:37:44 2012 +0100

    tests: fix spurious failures due to missing 'yywrap()' function
    
    The AC_PROG_LEX Autoconf macro does not diagnose a failure to find
    the "lex library" expected to provide a 'yywrap' function (function
    which is required to link most lex-generated programs).  On the
    contrary, when all the link attempts (i.e., with '-ll' and '-lfl')
    fail, configure declares that no lex library is needed, and simply
    proceeds with the configuration process -- only for the build to
    possibly fail later, at make time.
    
    This behaviour is intended; the Autoconf manual reads:
    
      You are encouraged to use Flex in your sources, since it is
      both more pleasant to use than plain Lex and the C source it
      produces is portable.  In order to ensure portability, however,
      you must either provide a function 'yywrap' or, if you don't use
      it (e.g., your scanner has no '#include'-like feature), simply
      include a '%noyywrap' statement in the scanner's source.
    
    This AC_PROG_LEX behaviour is causing some spurious failures of
    the Automake testsuite in environments which lack a proper library
    providing 'yywrap' (this happens for example on Fedora-based
    systems).   The proper workaround is to simply provide a fall-back
    implementation of 'yywrap' in our lexers.
    
    See also similar commits 'v1.11-546-gca0ba5d' (24-10-2011),
    'v1.11-1085-gb5c3968' (24-10-2011) and 'v1.11-871-geb147a1'
    (25-05-2011).
    
    * tests/lex-clean.test: Provide a dummy 'yywrap' function.
    * tests/lex-line.test: Likewise.
    * tests/lex-nodist.test: Likewise.
    * tests/lex-depend.test: Likewise.
    * tests/lex-clean-cxx.test: Move the dummy 'yywrap' function
    from the main '.cc' file into the '.lxx' file, so that it won't
    be subject to the namespace declaration in the '.cc' file (which
    was causing a spurious link error in systems without a default
    "lex library").

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

Summary of changes:
 tests/check12.test       |    5 ++---
 tests/lex-clean-cxx.test |    9 +++++----
 tests/lex-clean.test     |    6 ++++++
 tests/lex-depend.test    |    5 +++++
 tests/lex-line.test      |    6 ++++++
 tests/lex-nodist.test    |    6 ++++++
 tests/suffix10.tap       |    2 +-
 tests/yacc-cxx.test      |    1 +
 8 files changed, 32 insertions(+), 8 deletions(-)

diff --git a/tests/check12.test b/tests/check12.test
index 88235f8..92e4a69 100755
--- a/tests/check12.test
+++ b/tests/check12.test
@@ -140,9 +140,7 @@ for vpath in : false; do
     test -f test-suite.log
     test -f a.log
     test -f b.log
-  else
-    :
-  fi
+  else :; fi
   grep 'check-local succeeded :-)' local.log
 
   cp -f config.status config-status.sav
@@ -179,6 +177,7 @@ for vpath in : false; do
     grep '^FAIL: b$' test-suite.log
     grep '^b\.test: exit status: 1$' test-suite.log
     grep '^a\.test' test-suite.log && Exit 1
+    : For shells with busted 'set -e'.
   else :; fi
 
   CHECKLOCAL_EXIT_STATUS=1 $MAKE check && Exit 1
diff --git a/tests/lex-clean-cxx.test b/tests/lex-clean-cxx.test
index ba7e367..6ca8071 100755
--- a/tests/lex-clean-cxx.test
+++ b/tests/lex-clean-cxx.test
@@ -58,16 +58,17 @@ cat > parsefoo.lxx << 'END'
 %%
 "GOOD"   return EOF;
 .
+%%
+int yywrap (void)
+{
+  return 1;
+}
 END
 cp parsefoo.lxx parsebar.ll
 
 cat > mainfoo.cc << 'END'
 // This file should contain valid C++ but invalid C.
 using namespace std;
-int yywrap (void)
-{
-  return 1;
-}
 int main (int argc, char **argv)
 {
   extern int yylex (void);
diff --git a/tests/lex-clean.test b/tests/lex-clean.test
index 5bcb5c1..6f03887 100755
--- a/tests/lex-clean.test
+++ b/tests/lex-clean.test
@@ -64,6 +64,12 @@ int main (void)
 {
   return yylex ();
 }
+
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+  return 1;
+}
 END
 
 $ACLOCAL
diff --git a/tests/lex-depend.test b/tests/lex-depend.test
index 13d5554..2ef27da 100755
--- a/tests/lex-depend.test
+++ b/tests/lex-depend.test
@@ -55,6 +55,11 @@ int main (void)
   printf("%s\n", MESSAGE);
   return 0;
 }
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+  return 1;
+}
 END
 
 cat > my-hdr.h <<'END'
diff --git a/tests/lex-line.test b/tests/lex-line.test
index 27958c8..a7e1640 100755
--- a/tests/lex-line.test
+++ b/tests/lex-line.test
@@ -70,6 +70,12 @@ int main ()
     ;
   return 0;
 }
+
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+  return 1;
+}
 END
 
 cp zardoz.l dir/quux.l
diff --git a/tests/lex-nodist.test b/tests/lex-nodist.test
index 5948400..092e089 100755
--- a/tests/lex-nodist.test
+++ b/tests/lex-nodist.test
@@ -65,6 +65,12 @@ int main ()
 {
   return yylex ();
 }
+
+/* Avoid possible link errors. */
+int yywrap (void)
+{
+  return 1;
+}
 END
 
 $ACLOCAL
diff --git a/tests/suffix10.tap b/tests/suffix10.tap
index 2d66f3b..1b812cb 100755
--- a/tests/suffix10.tap
+++ b/tests/suffix10.tap
@@ -42,7 +42,7 @@ libfoo_la_SOURCES = foo.x_
          && echo 'void yyerror (char *s) {}' \
          && echo '%}' \
          && echo '%%' \
-         && echo 'WORD: "foo";' \
+         && echo 'foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};' \
          && echo '%%' \
 ## Account for VPATH issues on weaker make implementations.
          && cat `test -f '$<' || echo $(srcdir)/`$<; \
diff --git a/tests/yacc-cxx.test b/tests/yacc-cxx.test
index a805087..430fe06 100755
--- a/tests/yacc-cxx.test
+++ b/tests/yacc-cxx.test
@@ -93,6 +93,7 @@ test -f foo4-parse4.output
 for i in 1 2 3 4; do
   echo a | ./foo$i
   echo b | ./foo$i && Exit 1
+  : For shells with busted 'set -e'.
 done
 
 # The Yacc-derived C++ sources must be shipped.


hooks/post-receive
-- 
GNU Automake



reply via email to

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