From b0dff384ced94bf519054a62a68ce3dd2de26fbd Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Mon, 15 Jan 2024 19:52:04 -0500 Subject: [PATCH] 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. --- Makefile.am | 3 ++- tests/data/manydecl.gz | Bin 0 -> 196 bytes tests/data/manyspec.gz | Bin 0 -> 918 bytes tests/stress.at | 37 ++++--------------------------------- 4 files changed, 6 insertions(+), 34 deletions(-) create mode 100644 tests/data/manydecl.gz create mode 100644 tests/data/manyspec.gz 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 0000000000000000000000000000000000000000..d47e2356afde00f1fd5eb27d270c7953c4fc585b GIT binary patch literal 196 zcmb2|=HLiuTAIqloST?enUb2E!|?XPLC(Vl0t_4WFW-^Q6njc!yG+Y!PQE3#%O`N< zE+{;|INkMH*FOgQpke>@W48VCL?gA$6!EKMxbS`3zTzXVS3N)FfAkp(0mZ-Mo=04d UjC_A0>Mi@pf6L}rG%zv%0HxA08vpZ$XT9~o+L|Mk2>oxn8M0)l6`cK z$-1rg+ATc>mAgI}?tOLTblB%Pr{_g~5es!0&fv-anf)`|qLuPXWumuK)Y~i9GR!I|Bd(Ni`+_ literal 0 HcmV?d00001 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 -- 2.43.2