tests: really check the set of generated files

* tests/output.at (AT_CHECK_OUTPUT): It used to check that the
expected files are indeed generated, but it did not check that
there are no additional ones.
Do that, and adjust expectations (in particular alphabetical order).
This commit is contained in:
Akim Demaille
2012-07-30 17:24:14 +02:00
parent 5de5b98751
commit 1a5fb4f29b

View File

@@ -22,24 +22,30 @@ AT_BANNER([[Output file names.]])
# [ADDITIONAL-TESTS], [PRE-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 ]$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,/[^/]*,,'`;;
esac esac
done done
AT_DATA([$1], ]AT_DATA([$1],
[$2[ [$2[
%% %%
foo: {}; foo: {};
]]) ]])[
AT_BISON_CHECK([$3 $1 $5], 0) ]AT_BISON_CHECK([$3 $1 $5], 0)[
AT_CHECK([ls $4], [], [ignore]) # Ignore the files non-generated files
$6 ]AT_CHECK([find . -type f -and -not -path './$1' -and -not -path './testsuite.log' |
AT_CLEANUP sed 's,\./,,' |
]) sort |
xargs echo],
[], [$4
])[
]$6[
]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])
@@ -76,11 +82,11 @@ AT_CHECK_OUTPUT([foo.yy], [%defines %verbose %yacc],[],
AT_CHECK_OUTPUT([foo.y], [%file-prefix "bar" %defines %verbose], [], AT_CHECK_OUTPUT([foo.y], [%file-prefix "bar" %defines %verbose], [],
[bar.output bar.tab.c bar.tab.h]) [bar.output bar.tab.c bar.tab.h])
AT_CHECK_OUTPUT([foo.y], [%output="bar.c" %defines %verbose %yacc],[], AT_CHECK_OUTPUT([foo.y], [%output="bar.c" %defines %verbose %yacc],[],
[bar.output bar.c bar.h]) [bar.c bar.h bar.output])
AT_CHECK_OUTPUT([foo.y], AT_CHECK_OUTPUT([foo.y],
[%file-prefix="baz" %output "bar.c" %defines %verbose %yacc], [%file-prefix="baz" %output "bar.c" %defines %verbose %yacc],
[], [],
[bar.output bar.c bar.h]) [bar.c bar.h bar.output])
# Check priorities of extension control. # Check priorities of extension control.
@@ -114,35 +120,35 @@ AT_CHECK([grep 'include .subdir/' $1.hh], 1, [])
]) ])
AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %verbose], [], AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %verbose], [],
[foo.tab.cc foo.output]) [foo.output foo.tab.cc])
AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %defines %verbose], [], AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %defines %verbose], [],
[foo.tab.cc foo.tab.hh foo.output]) [foo.output foo.tab.cc foo.tab.hh stack.hh])
AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %verbose %locations], [], AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %verbose %locations], [],
[foo.tab.cc foo.output]) [foo.output foo.tab.cc])
AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %defines %verbose %locations], [], AT_CHECK_OUTPUT([foo.yy], [%skeleton "lalr1.cc" %defines %verbose %locations], [],
[foo.tab.cc foo.tab.hh foo.output location.hh stack.hh position.hh]) [foo.output foo.tab.cc foo.tab.hh location.hh position.hh stack.hh])
AT_CHECK_OUTPUT([subdir/foo.yy], [%skeleton "lalr1.cc" %defines %verbose], [], AT_CHECK_OUTPUT([subdir/foo.yy], [%skeleton "lalr1.cc" %defines %verbose], [],
[foo.tab.cc foo.tab.hh foo.output stack.hh], [foo.output foo.tab.cc foo.tab.hh stack.hh],
[], [AT_CHECK_NO_SUBDIR_PART([foo.tab])]) [], [AT_CHECK_NO_SUBDIR_PART([foo.tab])])
AT_CHECK_OUTPUT([subdir/foo.yy], [%skeleton "lalr1.cc" %defines %verbose %locations], AT_CHECK_OUTPUT([subdir/foo.yy], [%skeleton "lalr1.cc" %defines %verbose %locations],
[-o subdir/foo.cc], [-o subdir/foo.cc],
[subdir/foo.cc subdir/foo.hh subdir/foo.output subdir/location.hh subdir/stack.hh subdir/position.hh], [subdir/foo.cc subdir/foo.hh subdir/foo.output subdir/location.hh subdir/position.hh subdir/stack.hh],
[], [AT_CHECK_NO_SUBDIR_PART([subdir/foo])]) [], [AT_CHECK_NO_SUBDIR_PART([subdir/foo])])
AT_CHECK_OUTPUT([gram_dir/foo.yy], AT_CHECK_OUTPUT([gram_dir/foo.yy],
[%skeleton "lalr1.cc" %defines %verbose %file-prefix "output_dir/foo"], [%skeleton "lalr1.cc" %defines %verbose %file-prefix "output_dir/foo"],
[], [],
[output_dir/foo.tab.cc output_dir/foo.tab.hh output_dir/foo.output output_dir/stack.hh]) [output_dir/foo.output output_dir/foo.tab.cc output_dir/foo.tab.hh output_dir/stack.hh])
AT_CHECK_OUTPUT([gram_dir/foo.yy], AT_CHECK_OUTPUT([gram_dir/foo.yy],
[%skeleton "lalr1.cc" %defines %locations %verbose %file-prefix "output_dir/foo"], [%skeleton "lalr1.cc" %defines %locations %verbose %file-prefix "output_dir/foo"],
[], [],
[output_dir/foo.tab.cc output_dir/foo.tab.hh output_dir/foo.output output_dir/location.hh output_dir/stack.hh output_dir/position.hh]) [output_dir/foo.output output_dir/foo.tab.cc output_dir/foo.tab.hh output_dir/location.hh output_dir/position.hh output_dir/stack.hh])
# AT_CHECK_CONFLICTING_OUTPUT(INPUT-FILE, DIRECTIVES, FLAGS, STDERR, # AT_CHECK_CONFLICTING_OUTPUT(INPUT-FILE, DIRECTIVES, FLAGS, STDERR,