tests: handle Valgrind that complains about >&-.

* tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests.
(Output files: -dv >&-): Skip test group if running
maintainer-check-valgrind.
This commit is contained in:
Joel E. Denny
2010-07-24 16:30:07 -04:00
parent a151f354cf
commit c027cccb35
2 changed files with 16 additions and 2 deletions

View File

@@ -1,3 +1,10 @@
2010-07-24 Joel E. Denny <joeldenny@joeldenny.org>
tests: handle Valgrind that complains about >&-.
* tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests.
(Output files: -dv >&-): Skip test group if running
maintainer-check-valgrind.
2010-07-21 Akim Demaille <demaille@gostai.com> 2010-07-21 Akim Demaille <demaille@gostai.com>
Pacify gcc warnings. Pacify gcc warnings.

View File

@@ -20,10 +20,11 @@ AT_BANNER([[Output file names.]])
# AT_CHECK_OUTPUT(INPUT-FILE, [DIRECTIVES], [FLAGS], EXPECTED-FILES, [SHELLIO], # AT_CHECK_OUTPUT(INPUT-FILE, [DIRECTIVES], [FLAGS], EXPECTED-FILES, [SHELLIO],
# [ADDITIONAL-TESTS]) # [ADDITIONAL-TESTS], [PRE-TESTS])
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
m4_define([AT_CHECK_OUTPUT], m4_define([AT_CHECK_OUTPUT],
[AT_SETUP([[Output files: $2 $3 $5]]) [AT_SETUP([[Output files: $2 $3 $5]])
$7
for file in $1 $4; do for file in $1 $4; do
case "$file" in case "$file" in
*/*) mkdir -p `echo "$file" | sed 's,/.*,,'`;; */*) mkdir -p `echo "$file" | sed 's,/.*,,'`;;
@@ -43,9 +44,15 @@ AT_CLEANUP
AT_CHECK_OUTPUT([foo.y], [], [-dv], AT_CHECK_OUTPUT([foo.y], [], [-dv],
[foo.output foo.tab.c foo.tab.h]) [foo.output foo.tab.c foo.tab.h])
# Some versions of Valgrind (at least valgrind-3.6.0.SVN-Debian) report
# "fgrep: write error: Bad file descriptor" when stdout is closed, so we
# skip this test group during maintainer-check-valgrind.
AT_CHECK_OUTPUT([foo.y], [], [-dv], AT_CHECK_OUTPUT([foo.y], [], [-dv],
[foo.output foo.tab.c foo.tab.h], [foo.output foo.tab.c foo.tab.h],
[>&-]) [>&-], [],
[AT_CHECK([[case "$PREBISON" in *valgrind*) exit 77;; esac]])])
AT_CHECK_OUTPUT([foo.y], [], [-dv -o foo.c], AT_CHECK_OUTPUT([foo.y], [], [-dv -o foo.c],
[foo.c foo.h foo.output]) [foo.c foo.h foo.output])
AT_CHECK_OUTPUT([foo.y], [], [-dv -o foo.tab.c], AT_CHECK_OUTPUT([foo.y], [], [-dv -o foo.tab.c],