tests/lex-clean-cxx.test


Log

Author Commit Date CI Message
Stefano Lattarini 5b44ce39 2012-02-23T13:07:57 tests: quote 'like this', not `like this', as per GCS recommendation This patch converts the automake testsuite and related files, to the use of new quoting format 'like this' or "like this" rather than `like this'. This is done for consistency with the new recommendations in the GNU Coding Standards, and, well, because I've come to actually prefer the '...' and "..." quoting formats over the `...' one. * tests/README: Update quoting format throughout. Remove some "excessive" use of quoting, and throw in minor rewording where appropriate. * tests/Makefile.am: Likewise, for comments. * tests/CheckListOfTests.am: Likewise. * tests/defs-static.in: Likewise. * tests/defs: Likewise. * tests/trivial-test-driver: Likewise. * Many tests/*.tap, tests/*.test and tests/*.sh files: Likewise, and for the diagnostic and informational messages as well. * tests/gen-testsuite-part: Likewise, and for the generated tests as well.
Stefano Lattarini db973eaa 2012-02-21T19:47:36 tests: prefer 'configure.ac' over 'configure.in' With this change, our testsuite now uses 'configure.ac' as the name for the typical autoconf input, instead of the obsolescent 'configure.in' (which has been deprecated for several years, at least since autoconf 2.50). Most of the test cases changed by this commit have been automatically modified with this sed command (using GNU sed): sed -i 's/\<configure\(\\\?\)\.in\>/configure\1.ac/g' * syntax-checks.mk (sc_tests_no_configure_in): New syntax check. (syntax_check_rules): Add it. * tests/defs: Create stub for autoconf input in 'configure.ac', not in 'configure.in'. Adjust comments. ($AUTOCONF, $AUTOHEADER, $AUTORECONF): Remove workaround for the infamous debian autoconf wrapper: we don't need such workaround anymore now that we name our autoconf input as 'configure.ac'. For more information, see commit v1.11-564-g63da492 "test defs: hack to support autoconf-wrapper programs" of 16-12-2011. * tests/README: Use 'configure.ac', not 'configure.in'. * Many many tests: Likewise. * tests/backcompat3.test: Adjust to avoid spurious failures. * tests/backcompat5.test: Likewise. * tests/missing6.test: Likewise. * tests/backcompat6.test: Likewise, and extend a bit since we are at it.
Stefano Lattarini 641a5a4b 2012-02-16T10:46:23 maint: run "make update-copyright"
Stefano Lattarini 0b34421d 2012-02-12T16:37:44 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").
Stefano Lattarini 0a8cfb4c 2011-12-21T19:13:17 yacc/lex tests: avoid too much failures with FreeBSD make In various Yacc/Lex tests, we used to run "make distcheck" commands whose value was mostly dubious, and, even when it was there, was very, very little. The presence of these extra distchecks had two disadvantages: it slowed down our already-too-slow testsuite even more, and, much worse, caused a lot of extra failures with FreeBSD, all due to automake bug#7884, which is already exposed by the test case `yacc-dist-nobuild.test'. We can improve this situation by simply removing "make distcheck" calls from a few testcases, or making them conditional to the use of GNU make. * tests/lex-clean-cxx.test: Do not call "make distcheck". * tests/lex-clean.test: Likewise. * tests/yacc-clean-cxx.test: Likewise. * tests/yacc-clean.test: Likewise. * tests/yflags-force-override.test: Likewise. * tests/yacc-nodist.test: Only run "make distcheck" if make is GNU make.
Stefano Lattarini 1d76d3f5 2011-06-28T12:23:48 lex tests: fix spurious link errors on Solaris On Solaris 10, linking of lex-generated programs was failing in a couple of lex tests with errors like this: g++ -g -O2 -o joe joe.o -ll Undefined symbol first referenced in file yywrap() joe.o ld: fatal: Symbol referencing errors. No output written to joe collect2: ld returned 1 exit status This change fixes it, also fixing at once potential problems for systems that don't have a "lex library" (this happens for example when cross-compiling from GNU/Linux to MinGW). * tests/lex-depend-cxx.test (joe.ll, moe.l++): Define a dummy `yywrap()' function. * tests/lex-clean-cxx.test (mainfoo.cc, mainbar.cpp, mainbaz.c++, mainqux.cxx): Likewise.
Stefano Lattarini fea854ed 2011-05-13T20:51:50 lex: "make clean" removes .c files from non-distributed .l Previously, while automake did *not* distribute C source and header files derived from non-distributed Lex sources, it still caused them to be removed only by "make maintainer-clean" only, and not by simply "make clean" or "make distclean". This caused "make distcheck" to fail, unless the developer put those generated .c files in CLEANFILES or in DISTCLEANFILES by hand. This change fixes this issue, by making non-distributed `.c' files generated by non-distributed Lex sources cleaned by "make clean". A similar problem for Yacc support had been fixed with the commit v1.11-263-ged2c8bc. * tests/automake.in (lang_lex_target_hook): Make C source files derived from non-distributed Lex files cleaned by "make clean", not only by "make maintainer-clean". * tests/lex-clean.test: New test. * tests/lex-clean-cxx.test: Likewise. * tests/lex-nodist.test: Likewise. * tests/lex-pr204.test: Likewise. * tests/pr204.test: For consistency, renamed ... * tests/yacc-pr204.test: ... to this, and updated to keep it more in sync with 'lex-pr204.test'. * tests/yacc-nodist.test: Updated to keep it more in sync with 'lex-nodist.test'. * tests/Makefile.am (TESTS): Update. * NEWS: Update.