]> git.draconx.ca Git - cdecl99.git/commitdiff
tests: Work around awk line length limitations.
authorNick Bowler <nbowler@draconx.ca>
Tue, 16 Jan 2024 03:39:56 +0000 (22:39 -0500)
committerNick Bowler <nbowler@draconx.ca>
Tue, 16 Jan 2024 03:39:56 +0000 (22:39 -0500)
Some versions of awk (e.g., HP-UX 11) struggle with long lines, which is
a problem for the script which checks the excessive function parameter
output.

To fix this, let's try using tr, which should hopefully not care too
much about line length, to produce short lines that can be checked.

tests/stress.at

index 7fa620dbf1c3544fe8b8ca9c42f3c5956711d3b6..a8e95003ac93e380f55dce18bc49321e7bd1ecd0 100644 (file)
@@ -116,14 +116,6 @@ AT_DATA([check.awk],
 BEGIN { FS = "@"; runstart = 0; }
 END { finish_run(NR); }
 
-gsub(/,[^,)]*/, "~") {
-  while (match($0, /~+/) > 0) {
-    l = substr($0, 1, RSTART-1);
-    r = substr($0, RSTART+RLENGTH);
-    $0 = l ", [plus " RLENGTH " more parameters]" r;
-  }
-}
-
 $0 != lastline {
   finish_run(NR-1);
   lastline = $0;
@@ -140,12 +132,19 @@ function finish_run(nr) {
 
 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
+tr <test.out ',' '
+' | $AWK -f check.awk
 exit $status], [0],
 [[declare a as int
 [repeated 16383 more times]
-type function (a, [plus 16383 more parameters]) returning int
-int (a, [plus 16383 more parameters])
+type function (a
+ a
+[repeated 16381 more times]
+ a) returning int
+int (a
+ a
+[repeated 16381 more times]
+ a)
 ]])
 
 AT_CLEANUP