X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/7ba459d508d5e3c08580e8ec6c3dbc7c1fedd289..1688bad1e5dc89cacf33bc426c92a4abf2bc0647:/tests/scripts.at diff --git a/tests/scripts.at b/tests/scripts.at index 29471d8..4784b59 100644 --- a/tests/scripts.at +++ b/tests/scripts.at @@ -212,3 +212,84 @@ p }' messages.po | LC_ALL=C sort], [0], [expout]) AT_CLEANUP + +AT_SETUP([gen-strtab.awk]) + +AT_DATA([test.def], +[[ +&a world +&b +hello world +&c +hello +world +&d world\n +&e +\\not a newline +&f +\not a newline +&g inline +continued +&h no\ +newline\ +&i +\ leading whitespace +&j oneline +# with a comment +]]) + +AT_CHECK([$AWK -f "$builddir/scripts/gen-strtab.awk" test.h]) + +sed -n 's/^[[&]]\([[^ ]]*\).*/\1/p' test.def >identifiers + +# test 0: sanity test +AT_DATA([test0.c], +[[#include "test.h" +#include + +int main(void) +{ + printf("---\n"); +]]) +exec 3>test0.c +while read ident <&3; do + AS_ECHO([' printf("%s\n---\n", '"strtab+$ident);"]) >&4 +done +AS_ECHO([' return 0;']) >&4 +AS_ECHO(['}']) >&4 +exec 3<&- 4>&- + +AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0], [--- +world +--- +hello world + +--- +hello +world + +--- +world + +--- +\not a newline + +--- + +ot a newline + +--- +inline +continued + +--- +nonewline +--- + leading whitespace + +--- +oneline +--- +], [ignore]) + +AT_CLEANUP