tests/lexvpath.test


Log

Author Commit Date CI Message
Stefano Lattarini 641a5a4b 2012-02-16T10:46:23 maint: run "make update-copyright"
Stefano Lattarini e6c40d4b 2012-02-12T15:06:17 Merge branch 'yacc-work' into yl-work-for-master * yacc-work: (37 commits) fixup: list of yacc/lex tests was botched tests: work around bug#7884 in many yacc/lex tests yacc/lex tests: remove an unneeded workaround for bug#8485 yacc/lex tests: avoid too much failures with FreeBSD make yacc-dist-nobuild.test: add reference to bug#7884 yacc tests: fix bug in 'yacc-cxx.test' lex tests: fix spurious link errors on Solaris lex: "make clean" removes .c files from non-distributed .l lex tests: make test on Lex dependency tracking more "semantic" lex tests: remove erroneous check about ylwrap distribution yacc tests: "make clean" removes C++ files from non-distributed .y tests: add a workaround for automake bug#8485 tests: add a couple of inter-tests reference lex tests: require just `lex' instead of `flex' fix typo in ChangeLog (2011-05-04) tests defs: use `skip_' for skipping yacc/lex related tests lex/yacc tests: remove redundant $distdir definition coverage: test lex-generated "#line" directives postprocessing tests: minor improvements to a couple of yacc tests tests: fix spurious failure in test 'yacc-d-cxx.test' ... + Extra non-trivial edits: * tests/defs.in: Delete; the differences from maint has been merged into 'tests/defs' and 'tests/defs-static.in'. * tests/defs (yacc, lex): Use 'skip_all_', not 'skip_', to skip the whole test case if yacc (resp. lex) is missing. (bison): New, set up the environment so that 'bison -y' will be used as the yacc program. (useless_vpath_rebuild, yl_distcheck): Moved in from 'tests/defs.in'. * tests/defs-static.in ($YACC, $LEX): Default to the values determined at configure time, and allow them to be overridden by the more namespace-safe variables '$AM_TESTSUITE_YACC' and '$AM_TESTSUITE_LEX' respectively. * tests/Makefile.am (do_subst): Also substitute '@YACC@' and '@LEX@'. * Several tests: Fix requirements declarations, by preferring 'lex' and 'yacc' over 'flex' and 'bison' whenever possible.
Stefano Lattarini b5c39684 2011-10-24T23:18:34 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 partially-overlapping commit `v1.11-871-geb147a1' (from the 'testsuite-work' branch), which was motivated by similar spurious failures experienced when cross-compiling. Reported by Jim Meyering: <http://lists.gnu.org/archive/html/automake-patches/2011-10/msg00092.html> * tests/cond35.test: Provide a dummy `yywrap' function. * tests/lex3.test: Likewise. * tests/lexvpath.test: Likewise. * tests/silent-lex-generic.test: Likewise. * tests/silent-lex-gcc.test: Likewise.
Stefano Lattarini 0ea1177e 2011-07-16T00:19:56 tests: fix typos, grammaros and other blunders in comments
Stefano Lattarini b1b5ea5c 2011-06-01T17:43:44 lex tests: avoid possible hang; fix and extend * tests/lex3.test (foo.l:yywrap): Return 1, not 0, to avoid hangs. Bug introduced in commit 'v1.11-871-geb147a1'. (Makefile.am): Do not add `@LEXLIB@' to `$(LDADD)', as we define our own `yywrap' function. * tests/lex.test (tscan.l): In `yywrap', return 1, not 0, for consistency with the default flex implementation. * tests/lex-libobj.test (yywrap.c): Likewise. * tests/lex-subobj-nodep.test (s1.l): Likewise. * tests/lexvpath.test (foo.c): Likewise. * tests/silent-lex-gcc (foo.l): Likewise. * tests/silent-lex-generic (foo.l): Likewise. * tests/silent-many-gcc (foo5.l): Likewise. * tests/silent-many-generic (foo5.l): Likewise. * tests/lex-lib.test (mu.c): Likewise. Update heading comments, to refer to ... * tests/lex-lib-external.test: ... this new test, which checks that we can get use the `yywrap' function from a system-wide library, if that's available.
Stefano Lattarini eb147a19 2011-05-25T19:05:15 lex tests: avoid spurious failures when LEXLIB isn't found 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 might be (partly) 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 in Linux->MinGW cross compilations). But at this point is clear that a proper workaround is to simply provide a fall-back implementation of `yywrap' in our lexers. * tests/cond35.test: Provide a dummy `yywrap' function. * tests/lex3.test: Likewise. * tests/lexvpath.test: Likewise. * tests/silent-many-gcc.test: Likewise. * tests/silent-many-generic.test: Likewise. * tests/silent-lex-gcc.test: Likewise, and a dummy `main' too. * tests/silent-lex-generic.test: Likewise. * tests/lex-lib.test: New test. * tests/lex-libobj.test: New test. * tests/lex-nowrap.test: New test. * tests/Makefile.am (TESTS): Update. * THANKS: Update. Thanks to Russ Allbery for the suggestion.
Stefano Lattarini 7a7fc565 2011-05-23T21:53:44 testsuite: require C compiler explicitly in tests needing it The list of the test scripts which needed a C compiler but failed to require it explicitly has been found by running: $ am_explicit_skips=yes CC=false make check and looking for tests that reported FAIL instead of SKIP. After the present change, all those previously failing tests either pass or get correctly skipped. * tests/aclocal4.test ($required): Add `cc'. * tests/ansi.test: Likewise. * tests/ansi10.test: Likewise. * tests/ansi3.test: Likewise. * tests/ansi3b.test: Likewise. * tests/ansi5.test: Likewise. * tests/ansi6.test: Likewise. * tests/ansi7.test: Likewise. * tests/ansi9.test: Likewise. * tests/backcompat6.test: Likewise. * tests/canon7.test: Likewise. * tests/check5.test: Likewise. * tests/check7.test: Likewise. * tests/check8.test: Likewise. * tests/cond4.test: Likewise. * tests/cond11.test: Likewise. * tests/cond16.test: Likewise. * tests/cond18.test: Likewise. * tests/cond19.test: Likewise. * tests/cond22.test: Likewise. * tests/cond30.test: Likewise. * tests/cond31.test: Likewise. * tests/cond32.test: Likewise. * tests/cond34.test: Likewise. * tests/cond35.test: Likewise. * tests/cond39.test: Likewise. * tests/condd.test: Likewise. * tests/cygnus-dependency-tracking.test: Likewise. * tests/depcomp2.test: Likewise. * tests/depcomp6.test: Likewise. * tests/depcomp7.test: Likewise. * tests/depcomp8a.test: Likewise. * tests/depcomp8b.test: Likewise. * tests/depdist.test: Likewise. * tests/depend2.test: Likewise. * tests/depend5.test: Likewise. * tests/distcleancheck.test: Likewise. * tests/distname.test: Likewise. * tests/exeext.test: Likewise. * tests/exeext4.test: Likewise. * tests/extradep.test: Likewise. * tests/extradep2.test: Likewise. * tests/gnits2.test: Likewise. * tests/gnits3.test: Likewise. * tests/instdir-ltlib.test: Likewise. * tests/instdir-prog.test: Likewise. * tests/instfail.test: Likewise. * tests/instfail-libtool.test: Likewise. * tests/lex3.test: Likewise. * tests/lex5.test: Likewise. * tests/lexvpath.test: Likewise. * tests/lex-subobj-nodep.test: Likewise. * tests/lflags.test: Likewise. * tests/libobj-basic.test: Likewise. * tests/libobj2.test: Likewise. * tests/libobj7.test: Likewise. * tests/libobj10.test: Likewise. * tests/libobj16a.test: Likewise. * tests/libobj16b.test: Likewise. * tests/libobj17.test: Likewise. * tests/libobj19.test: Likewise. * tests/libtool2.test: Likewise. * tests/libtool3.test: Likewise. * tests/libtool7.test: Likewise. * tests/libtool9.test: Likewise. * tests/libtoo10.test: Likewise. * tests/libtoo11.test: Likewise. * tests/ltcond.test: Likewise. * tests/ltcond2.test: Likewise. * tests/ltconv.test: Likewise. * tests/ltinit.test: Likewise. * tests/ltlibsrc.test: Likewise. * tests/ltorder.test: Likewise. * tests/nobase.test: Likewise. * tests/nobase-libtool.test: Likewise. * tests/mmodely.test: Likewise. * tests/parallel-tests5.test: Likewise. * tests/parallel-tests-suffix-prog.test: Likewise. * tests/parallel-tests-ext-driver-prog.test: Likewise. * tests/posixsubst-ldadd.test: Likewise. * tests/posixsubst-libraries.test: Likewise. * tests/posixsubst-ltlibraries.test: Likewise. * tests/posixsubst-programs.test: Likewise. * tests/posixsubst-sources.test: Likewise. * tests/pr87.test: Likewise. * tests/pr204.test: Likewise. * tests/pr224.test: Likewise. * tests/pr300-lib.test: Likewise. * tests/pr300-ltlib.test: Likewise. * tests/pr300-prog.test: Likewise. * tests/pr401.test: Likewise. * tests/pr401b.test: Likewise. * tests/pr401c.test: Likewise. * tests/remake-gnulib-add-acsubst.test: Likewise. * tests/remake-gnulib-add-header.test: Likewise. * tests/regex.test: Likewise. * tests/repeated-options.test: Likewise. * tests/silent.test: Likewise. * tests/silent3.test: Likewise. * tests/silent9.test: Likewise. * tests/silent-lex-generic.test: Likewise. * tests/silent-many-generic.test: Likewise. * tests/silent-yacc-generic.test: Likewise. * tests/specflg7.test: Likewise. * tests/specflg9.test: Likewise. * tests/specflg10.test: Likewise. * tests/stdinc.test: Likewise. * tests/strip.test: Likewise. * tests/strip2.test: Likewise. * tests/strip3.test: Likewise. * tests/subdirbuiltsources.test: Likewise. * tests/subobj3.test: Likewise. * tests/subobj6.test: Likewise. * tests/subobj11a.test: Likewise. * tests/subpkg.test: Likewise. * tests/subst2.test: Likewise. * tests/subst3.test: Likewise. * tests/substref.test: Likewise. * tests/substre2.test: Likewise. * tests/suffix5.test: Likewise. * tests/suffix8.test: Likewise. * tests/suffix10.test: Likewise. * tests/suffix11.test: Likewise. * tests/suffix12.test: Likewise. * tests/suffix13.test: Likewise. * tests/target-cflags.test: Likewise. * tests/transform.test: Likewise. * tests/transform2.test: Likewise. * tests/yacc-basic.test: Likewise. * tests/yacc-d-basic.test: Likewise. * tests/yacc-clean.test: Likewise. * tests/yacc-dist-nobuild.test: Likewise. * tests/yacc-nodist.test: Likewise. * tests/yaccvpath.test: Likewise. * tests/yacc-d-vpath.test: Likewise. * tests/yacc4.test: Likewise. * tests/yacc7.test: Likewise. * tests/yacc8.test: Likewise. * tests/yaccdry.test: Likewise. * tests/yflags-cmdline-override.test: Likewise. * tests/yflags-force-override.test: Likewise. * tests/python-virtualenv.test: Likewise. Also, improve skip messages. * tests/subobj5.test ($required): Add `cc'. (Makefile.am): Set `AUTOMAKE_OPTIONS' to `subdir-objects', and add new checking rules `test-build' and `test-distdir'. Extend the test by building and examining the distdir, the program, and the object files. * tests/postproc.test ($required): Add `cc'. Avoid the explicit `|| Exit $?' after call to configure, which is now either redundant (e.g., when `am_explicit_skips' is unset), or counter-productive (e.g., when `am_explicit_skips' is set to "yes"). * tests/pr243.test: Likewise. * tests/pr266.test: Likewise. * tests/pr220.test: Simplify so that it doesn't require a C compiler anymore. * tests/subdir5.test: Likewise. * tests/subdir8.test: Likewise. * tests/lflags.test: Likewise. * tests/yflags.test: Likewise. * tests/yflags-force-conditional.test: Likewise. * tests/lflags2.test: Simplify so that it doesn't require a C++ compiler anymore. * tests/yflags2.test: Likewise. * tests/autohdrdry.test (configure.in): Remove unneeded call to `AC_PROG_CC'. * tests/pr287.test: Likewise. * tests/check6.test: Likewise. * tests/cond21.test: Likewise, plus some cosmetic adjustments. * tests/upc.test: Skip if configure fails with status `77'. * tests/upc3.test: Likewise. * tests/vala4.test: Likewise. * tests/nostdinc.test: Likewise. Also, make grepping checks on `Makefile.in'. Update heading comments. * tests/compile5.test: When we must skip, skip explicitly, and with a meaningful message. * tests/instspc-tests.sh: When running in "test-build" or "test-install" mode (as determined by the value of variable `$instspc_action'), require `cc'. Adjust comments. * tests/depmod-tests.sh: Likewise.
Stefano Lattarini 6f8f38cf 2011-05-03T17:51:42 tests: drop useless requirements of gcc (plus testsuite tweakings) * tests/libobj14.test ($required): Remove 'gcc', as we never run the C compiler. * tests/targetclash.test: Likewise. * tests/ansi6.test ($required): Remove 'gcc', as any working C compiler should be enough. * tests/ansi7.test: Likewise. * tests/ansi9.test: Likewise. * tests/ansi10.test: Likewise. * tests/lex5.test: Likewise. * tests/lexvpath.test: Likewise. * tests/mmodely.test: Likewise. * tests/pr204.test: Likewise. * tests/pr300-lib.test: Likewise. * tests/pr300-prog.test: Likewise. * tests/primary3.test: Likewise. * tests/specflg7.test: Likewise. * tests/specflg8.test: Likewise. * tests/subdir5.test: Likewise. * tests/subdir8.test: Likewise. * tests/subobj6.test: Likewise. * tests/subst3.test: Likewise. * tests/substre2.test: Likewise. * tests/yacc6.test: Likewise. * tests/yacc8.test: Likewise. * tests/depcomp2.test: Likewise. Also, avoid clobbering user-set CFLAGS. * tests/lex3.test: Likewise. * tests/ansi3.test: Likewise. Also, avoid 'CC=gcc' in configure. * tests/ansi3b.test: Likewise. * tests/ansi5.test: Likewise. * tests/autohdr4.test ($required): Remove 'gcc', as any working C compiler should be enough. Also, do not reject slow dependency extractors (which we might be forced to use now that $CC is not necessarily gcc anymore). * tests/cond16.test ($required): Remove 'gcc', as any working C compiler should be enough. Since we are at it, throw in few minor tweakings (mostly cosmetic, stylistic, or consistency-related). * tests/cond18.test: Likewise. * tests/cond35.test: Likewise. * tests/gnits2.test: Likewise. * tests/libtool3.test: Likewise. * tests/libtool7.test: Likewise. * tests/libtool9.test: Likewise. * tests/ltcond.test: Likewise. * tests/ltcond2.test: Likewise. * tests/ltconv.test: Likewise. * tests/ltlibsrc.test: Likewise. * tests/nobase.test: Likewise. * tests/nobase-libtool.test: Likewise. * tests/pr220.test: Likewise. * tests/pr224.test: Likewise. * tests/pr300-ltlib.test: Likewise. * tests/pr401.test: Likewise. * tests/pr401b.test: Likewise. * tests/pr401c.test: Likewise. * tests/subpkg.test: Likewise. * tests/target-cflags.test: Likewise. * tests/transform.test: Likewise. * tests/yacc4.test: Likewise. * tests/cond19.test: Likewise. Also, avoid clobbering user-set CFLAGS. * tests/cond4.test: Likewise. * tests/depend2.test: Likewise. * tests/pr87.test: Likewise. * tests/subobj3.test: Likewise. * tests/substref.test: Likewise.
Stefano Lattarini d986a800 2011-04-15T18:12:05 lex/yacc tests: remove redundant $distdir definition * tests/lex3.test ($distdir): Remove definition, that's already done in `tests/defs'. * tests/lexvpath.test: Likewise. * tests/yacc-basic.test: Likewise. * tests/yacc-cxx.test: Likewise. * tests/yacc-d-basic.test: Likewise. * tests/yacc-d-cxx.test: Likewise. * tests/yacc-d-vpath.test: Likewise. * tests/yacc-dist-nobuild-subdir.test: Likewise. * tests/yacc-dist-nobuild.test: Likewise. * tests/yacc-mix-c-cxx.test: Likewise. * tests/yaccvpath.test: Likewise.
Stefano Lattarini 531cc871 2011-04-12T17:25:42 Merge branch 'maint' (with edits) test defs: define default $distdir (help reducing duplication) * tests/defs ($distdir): New variable, might be used in testcases checking distribution-related features. * tests/pr9.test: Use it. * tests/subdir9.test: Likewise. * tests/lex3.test: Likewise. * tests/lexvpath.test: Likewise. * tests/remake-moved-m4-file.test: Likewise. * tests/remake-renamed-m4-file.test: Likewise. * tests/remake-renamed-m4-macro-and-file.test: Likewise. * tests/yacc-basic.test: Likewise. * tests/yacc-d-basic.test: Likewise. * tests/yacc-d-vpath.test: Likewise. * tests/yacc-dist-nobuild.test: Likewise. * tests/vtexi3.test: Add comment explaining why we redefine $distdir in this test.
Stefano Lattarini f02ce8d9 2011-04-11T15:15:55 tests: do not uselessly require GNU make or gcc in a few tests * tests/lex3.test: Remove gcc from requirements, as any working C compiler should be ok. Consequently, do not clobber user CFLAGS. Also, remove GNUmake from requirements; it was added (see commit `Release-1-8-103-g0d2f592') because this test fails with FreeBSD make due to VPATH issues -- but so do many other yacc-related and lex-related tests currently, and requiring GNU make in all of them would unacceptably reduce coverage. * tests/lexvpath.test: Remove gcc from requirements, as any working C compiler should be ok. * tests/yacc4.test: Likewise. * tests/yacc8.test: Likewise. * tests/lex5.test: Likewise. Also, do not require anymore GNU make; to compensate, explicitly call "$MAKE Makefile" to update the out-of-date Makefile if $MAKE is not GNU make.
Stefano Lattarini aa9a269b 2011-01-28T23:04:14 configure: look for a lex program to be used by the testsuite This will allow the testcases requiring a 'lex' program to run also with vendor/legacy lex implementations, not only with 'flex'. * configure.ac: Look for a lex program, using AC_CHECK_PROGS. * tests/defs.in: New required entry 'lex'. ($LEX): Let the user override the lex program to be used by the testsuite. * tests/cond35.test ($required): Require 'lex', not 'flex'. * tests/cond36.test: Likewise. * tests/lexv3.test: Likewise. * tests/lexv3.test: Likewise. * tests/silent-lex-gcc.test: Likewise. * tests/silent-lex-generic.test: Likewise. * tests/silent-many-gcc.test: Likewise. * tests/silent-many-generic.test:likewise. * tests/lexvpath.test: Likewise, and fix typo in comments.
Stefano Lattarini 79103003 2011-01-08T19:40:04 tests: enable 'errexit' shell flag by default. * tests/defs: Enable `errexit' shell flag (near the end). Removed redundant comment about the enabling of shell traces. * tests/README (Writing test cases): Update, and use nicer formatting in a couple of places. * All tests: Adjusted by removing now-redundant calls to 'set -e'.
Stefano Lattarini d4dcf503 2010-05-07T15:07:37 Extend, fix and improve tests on Lex and Yacc support. * tests/lexcpp.test: New test script, on support for Lex + C++. * tests/lexvpath.test: New test script, test build and rebuild rules for lexers in VPATH setup. * tests/yacc-basic.test: New test script, run simple "semantic" checks on basic Yacc support (similarly to what lex3.test does for Lex support). * tests/lex.test: Don't create useless dummy source file joe.l. Remove extra blank lines. * tests/lex4.test: Add trailing `:' command. Do not create dummy useless lex source file. * tests/lex2.test: Likewise. Call automake with the `-a' option, so that it doesn't fail for the absence of `ylwrap' script. Make grepping of automake stderr stricter. * tests/yacc7.test: Add trailing `:' command. Enable `errexit' shell flag earlier (just after having sourced ./defs). * tests/yacc4.test: Likewise. Also ... (configure.in): Use pre-populated skeleton set up by ./defs, instead of writing one from scratch. Other minor cosmetic changes. * tests/yacc5.test: Likewise. * tests/yaccvpath.test: Likewise. Also ... ($distdir): New variable. Use it throughout. * tests/lex5.test: Likewise. * tests/lex3.test: Likewise. Check the distdir, rather than grepping the distribution tarball. Extend the test on the created binary, and be sure to avoid hangs. Add some comments. * tests/yacc.test: Use stricter grepping. Add trailing `:'. * tests/yacc6.test: Likewise. * tests/yacc3.test: Likewise. Do not create the unused file `Makefile.sed'. Remove useless rules from Makefile.am. Other minor cosmetic changes. * tests/yacc2.test: Make grepping of generated `Makefile.in' and of automake error messages stricter. Do not redirect output of grep to /dev/null. Move call to aclocal earlier. Reduce the number of empty blank lines. Fix a typo in comments. * tests/yacc8.test: Fixed bugs that reduced the completeness of the tests. Added trailing `:' command. (configure.in): Use pre-populated skeleton set up by ./defs, instead of writing one from scratch. * tests/yaccpp.test: Test also extensions `.y++', `.ypp', and `.yxx', rather than only `.yy'. * tests/Makefile.am (TESTS): Update.