]> git.draconx.ca Git - cdecl99.git/commitdiff
tests: Better output filter in randomdecl sanity test.
authorNick Bowler <nbowler@draconx.ca>
Mon, 4 Dec 2023 05:14:47 +0000 (00:14 -0500)
committerNick Bowler <nbowler@draconx.ca>
Mon, 4 Dec 2023 05:24:26 +0000 (00:24 -0500)
Instead of a big sed program producing thousands of lines to then
extract the unique ones, use an awk program that follows the same
basic concept but only prints any particular line once.

tests/internal.at
tests/stress.at

index 1ae6f994a78829ae287639325b1eecdade3a0cf5..859807354d3aec74be7901e05c7d30e1e8354e92 100644 (file)
@@ -75,6 +75,7 @@ TEST_TAP_SIMPLE([cdecl__err sanity], [cdeclerr],
   [TEST_NEED_PROGRAM([cdeclerr])], [libcdecl internal])
 
 AT_SETUP([cdecl_declare truncation])
+AT_KEYWORDS([libcdecl internal])
 
 AT_DATA([input],
 [[int hello_world
@@ -94,6 +95,7 @@ AT_CHECK([rendertest -n 10 <input], [0],
 AT_CLEANUP
 
 AT_SETUP([cdecl_explain truncation])
+AT_KEYWORDS([libcdecl internal])
 
 AT_DATA([input],
 [[declare x as int
index b71836950db3d98de82f85b0140e2f489bf4cd20..002b966ba5acf9b6cda2d5c1793134c63b7bb181 100644 (file)
@@ -30,8 +30,8 @@ m4_define([sanity_tests], [dnl
   [[^type], [type name]],
   [[inline], [inline function specifier]],
   [[inline inline], [redundant function specifiers]],
-  [[function (@<:@RE_ALNUM()_@:>@* as], [named function parameter]],
-  [[function (void)], [empty prototype declaration]],
+  [[function [(]@<:@]]RE_ALNUM()_[[@:>@* as], [named function parameter]],
+  [[function [(]void[)]], [empty prototype declaration]],
   [[function returning], [non-prototype function declaration]],
   [[\.\.\.], [variadic function]],
   [[const], [const qualifier]],
@@ -62,15 +62,21 @@ m4_define([sanity_tests], [dnl
   [[pointer to function], [pointer to a function]],
 ])
 
-m4_define([sanity_sed], [/$1/i\
-FOUND $2])AT_DATA([sanity.sed], [#n
-m4_map_sep([sanity_sed], [m4_newline], [sanity_tests])
+m4_define([sanity_awk], [[/$1/ { found["$2"] = 1; }
+]])AT_DATA([sanity.awk],
+[m4_map([sanity_awk], [sanity_tests])dnl
+END { for (k in found) print "FOUND", k; }
 ])
-sed -n '/^FOUND/p' sanity.sed | LC_ALL=C sort -u >expout
+
+m4_define([sanity_exp], [[FOUND $2
+]])
+LC_ALL=C sort >expout <<'EOF'
+m4_map([sanity_exp], [sanity_tests])dnl
+EOF
 
 printf 'Using seed %d\n' "$random_seed" >&AS_MESSAGE_LOG_FD
 AT_CHECK([randomdecl -En 10000 -s "$random_seed" >decls], [0])
-AT_CHECK([sed -f sanity.sed decls | LC_ALL=C sort -u], [0], [expout])
+AT_CHECK([$AWK -f sanity.awk decls | LC_ALL=C sort], [0], [expout])
 
 AT_CLEANUP