From 420731be907d16ff3f6905ac5281543a0e784c54 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Mon, 4 Dec 2023 00:14:47 -0500 Subject: [PATCH] tests: Better output filter in randomdecl sanity test. 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 | 2 ++ tests/stress.at | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/tests/internal.at b/tests/internal.at index 1ae6f99..8598073 100644 --- a/tests/internal.at +++ b/tests/internal.at @@ -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 @* 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 -- 2.43.2