|
c2a52bf0
|
2012-06-24T10:36:15
|
|
tests: simpler workaround for shells losing the exit status in exit trap
Now that we can assume our tests are run by a decent POSIX shell, we
can simplify our workaround aimed at having the exit status propagated
correctly to the code in the exit trap. Unfortunately, we cannot
dispense with such a workaround altogether, because it's still required
by some shells we need to support (at least Solaris 10 /bin/ksh and
/usr/xpg4/bin/sh).
For more information about the need of that workaround, see the entry
about 'trap' in the section "Limitations of Shell Builtins" in the
Autoconf manual:
<http://www.gnu.org/software/autoconf/manual/autoconf.html#trap>
The new workaround has been tested successfully with the following
shells:
- Bash 4.1
- Bash 3.2
- Bash 3.0
- Bash 2.05b
- dash 0.5.5.1
- dash 0.5.2
- AT&T Ksh 93u (from official Debian package)
- MirBSD Korn Shell 40.2 (from official Debian package)
- Solaris 9, 10 and 11 /bin/ksh
- Solaris 9, 10 and 11 /usr/xpg4/bin/sh
- NetBSD 5.1 /bin/sh
- NetBSD 5.1 /bin/ksh
* t/ax/test-init.sh (Exit): Rename ...
(_am_exit): ... like this.
(exit): New alias for '_am_exit'. We cannot simply redefine 'exit'
as a shell function, because some shells (dash 0.5.5.1, Solaris 10
/bin/ksh and /usr/xpg4/bin/sh) do not allow it.
(_am_exit, trap): Add extra escaping for 'exit' calls, to ensure we
really invoke the 'exit' builtin and not our alias with the same
name.
* configure.ac: Check that the shell selected to run our testsuite
supports aliases named like shell builtins.
* t/REAMDE: Adjust.
* All tests: Adjust, by simply using 'exit' instead of 'Exit'.
* t/self-check-explicit-skips.sh: Adjust: the first usage of 'exit'
after it has been redefined as an alias must be on a new line w.r.t.
that where the alias is defined, in order for the redefinition to be
honored.
* syntax-checks.mk (sc_tests_Exit_not_exit): Delete.
(sc_tests_exit_not_Exit): New.
(syntax_check_rules): Adjust.
(sc_tests_automake_fails): Simplify the recipe a little.
* Several tests: Remove now useless spurious quoting once required
to placate the 'sc_tests_Exit_not_exit' maintainer check.
* gen-testsuite-part: Likewise. Also, avoid uses of 'Exit' in the
generated scripts.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
13dd512d
|
2012-06-22T18:15:21
|
|
tests: prefer using 'is_newest' over 'ls -t' hacks
To verify that a file 'new' is newer than the file 'old', it's much
cleaner to use "is_newest new old" rather than the more clumsy
"ls -t". Adjust several of our tests accordingly.
* syntax-checks.mk (sc_tests_ls_t): New check, guard against uses
of "ls -t" and similar.
(syntax_check_rules): Add it.
* t/maken.sh: Adjust.
* t/autohdr4.sh: Likewise.
* t/extradep2.sh: Likewise.
* t/lex-depend-cxx.sh: Likewise.
* t/extradep.sh: Likewise.
* t/yacc-depend2.sh: Likewise.
* t/yacc-pr204.sh: Likewise.
* t/lex-pr204.sh: Likewise.
* t/yacc8.sh: Likewise.
* t/acloca13.sh: Likewise.
* t/lex-depend.sh: Likewise, and enhance.
* t/acloca14.sh: Likewise.
* t/aclocal7.sh: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
eb7e8f33
|
2012-04-26T10:29:42
|
|
tests: fix a failure in Lex/C++ tests on Mac OS X
The <cstdio> header from Xcode-4.3.2 on Mac OS X 10.7.3 declares a 'isatty'
function with C++ linkage, that conflicts with our dummy definition of the
same function, which in turn is required to work around the absence of the
unistd.h header on MinGW (see commit 'v1.11-2138-gfeea090' of 11-04-2012).
So we tweak the affected tests to work around this new problem as well.
This fixes automake bug#11345.
* t/lex-clean-cxx.sh ($required): Since we are at it, add an explicit
'c++' requirement.
* t/lex-depend-cxx.sh ($required): Likewise.
(my-hdr.hxx): Don't include <cstdio>. The "using namespace" directive
should still be enough to ensure the content of this header is not valid
C, albeit being of course valid C++.
Fix unrelated typos in comments.
(joe.ll): Adjust, by removing the call to 'printf'.
* THANKS: Add entry for reporter "Adam Mercer".
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
feea0902
|
2012-04-11T15:25:37
|
|
tests: avoid spurious failures in tests on C++ and lex
This is a follow-up to commit v1.11-2128-g7f2bc63 of 09-04-2012,
"tests: avoid spurious failures with non-flex 'lex' programs and
C++". It is required to avoid a couple of spurious failures on
Solaris and NetBSD systems (at least). See also automake bug#11185.
* t/lex-clean-cxx.sh (parsefoo.lxx): Do not declared the provided
dummy 'isatty' function as 'static', since that might conflict with
a declaration of it as 'extern' pulled in through other system
* t/lex-depend-cxx.sh (joe.ll): Likewise.
* t/README: Update advice, to avoid similar issues in the future.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
76f0605a
|
2012-04-11T11:04:56
|
|
Merge branch 'rmch'
* rmch:
maint: simplify generation of files with @substed@ stuff
t/README: update w.r.t. recent overhaul (non-recursive build system)
docs: fix names of relevant test cases in comments
NEWS: automake build systems avoids make recursion
maint: no more make recursion in Automake's build system
tests: rename 'tests/' => 't/', '*.test' => '*.sh'
tests: remove recipes that run tests with 'prove'
tests: move most helper scripts and files into the 'ax' subdirectory
|
|
8a5096d1
|
2012-04-06T13:12:25
|
|
tests: rename 'tests/' => 't/', '*.test' => '*.sh'
When we (soon) convert the Automake testsuite to a non-recursive
make setup, we'll have to fix the entries of $(TESTS) to be
prepended with the subdirectory they are in; this will increase
the length of $(TESTS), and thus increase the possibility of
exceeding the command-line length limits on some systems (most
notably, MinGW/MSYS). See automake bug#7868 for more information.
Thus we rename the 'tests/' subdirectory to 't/', and each 'x.test'
script in there to 'x.sh'; this way, the $(TESTS) entry 'foo.test'
will become 't/foo.sh', which have the same number of characters.
* tests/: Rename ...
* t/: ... to this.
* t/*.test: Rename ...
* t/*.sh: ... to this.
* t/.gitignore: Removed as obsolete.
* t/defs: Adjust.
* t/gen-testsuite-part: Likewise.
* t/list-of-tests.mk: Likewise.
* t/ccnoco.sh: Likewise.
* t/ccnoco3.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-me.tap: Likewise.
* t/self-check-reexec.tap: Likewise.
* README: Likewise.
* bootstrap: Likewise
* configure.ac: Likewise.
* Makefile.am: Likewise.
* .gitignore: Likewise.
* syntax-check.mk: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|