From: Nick Bowler Date: Tue, 16 Jan 2024 00:52:04 +0000 (-0500) Subject: tests: Avoid shell limitations in huge input tests. X-Git-Tag: v1.3~31 X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/commitdiff_plain/b0dff384ced94bf519054a62a68ce3dd2de26fbd tests: Avoid shell limitations in huge input tests. It seems that the very large here-documents used in the excessive specifier/declarator tests can be problematic on some ksh versions. Normal compression tools handle this data very well, so instead of using the shell to generate it it should be just fine to just use gunzip to do this and skip the tests if that cannot be done for whatever reason. --- diff --git a/Makefile.am b/Makefile.am index c32eb92..1aa6a56 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,7 +26,8 @@ CLEANFILES = $(EXTRA_LTLIBRARIES) $(EXTRA_LIBRARIES) EXTRA_DIST = bootstrap $(DX_BASEDIR)/scripts/fix-gnulib.pl m4/gnulib-cache.m4 \ src/types.lst src/parse.y src/parse.stamp src/scan.l \ - src/scan.stamp COPYING.WTFPL2 README.md INSTALL + src/scan.stamp COPYING.WTFPL2 README.md INSTALL \ + tests/data/manyspec.gz tests/data/manydecl.gz dist_man_MANS = doc/cdecl99.1 doc/libcdecl.3 diff --git a/tests/data/manydecl.gz b/tests/data/manydecl.gz new file mode 100644 index 0000000..d47e235 Binary files /dev/null and b/tests/data/manydecl.gz differ diff --git a/tests/data/manyspec.gz b/tests/data/manyspec.gz new file mode 100644 index 0000000..88e13e9 Binary files /dev/null and b/tests/data/manyspec.gz differ diff --git a/tests/stress.at b/tests/stress.at index 3ee72d9..7fa620d 100644 --- a/tests/stress.at +++ b/tests/stress.at @@ -96,27 +96,8 @@ AT_CLEANUP # Check that we can parse declarations with more than 10000 specifiers. AT_SETUP([Excessive specifiers]) -s="const" -for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do - AS_VAR_APPEND([s], [" $s"]) -done - -cat >test.dat <>test.dat <test.dat || exit 77 +cdecl99 -f test.dat], [0], [[type const int type const int const int @@ -157,18 +138,8 @@ function finish_run(nr) { } ]]) -a="a" -for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do - AS_VAR_APPEND([a], [",$a"]) -done - -cat >test.dat <test.out; status=$?; +AT_CHECK([gunzip -c "$srcdir/tests/data/manydecl.gz" >test.dat || exit 77 +cdecl99 -f test.dat >test.out; status=$?; $AWK -f check.awk test.out exit $status], [0], [[declare a as int