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.
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 \
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
dist_man_MANS = doc/cdecl99.1 doc/libcdecl.3
# Check that we can parse declarations with more than 10000 specifiers.
AT_SETUP([Excessive specifiers])
# 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 <<EOF
-explain $s int
-explain int $s
-type $s int
-type int $s
-EOF
-
-s="inline"
-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 <<EOF
-declare f as $s function returning int
-EOF
-
-AT_CHECK([cdecl99 -f test.dat], [0],
+AT_CHECK([gunzip -c "$srcdir/tests/data/manyspec.gz" >test.dat || exit 77
+cdecl99 -f test.dat], [0],
[[type const int
type const int
const int
[[type const int
type const int
const int
-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 <<EOF
-explain int $a
-explain int ($a)
-type function ($a) returning int
-EOF
-
-AT_CHECK([cdecl99 -f 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
$AWK -f check.awk test.out
exit $status], [0],
[[declare a as int