X-Git-Url: http://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/8cda0a6cc9cc31edf0fe94c470038f12c8dcc905..ccd4df684019395c163eb3174c5e8bf2d3d8bdfc:/tests/scripts.at diff --git a/tests/scripts.at b/tests/scripts.at index 41dfbb4..fc8fbc3 100644 --- a/tests/scripts.at +++ b/tests/scripts.at @@ -1,4 +1,4 @@ -dnl Copyright © 2021-2022 Nick Bowler +dnl Copyright © 2021-2023 Nick Bowler dnl dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2. dnl This is free software: you are free to do what the fuck you want to. @@ -300,6 +300,86 @@ oneline --- ], [ignore]) +AT_CLEANUP + +AT_SETUP([gen-strtab.awk @nozero option]) +AT_KEYWORDS([gen-strtab awk script scripts]) + +AT_DATA([test0.def], +[[&hello hello +]]) +AT_CHECK([$AWK -f "$builddir/scripts/gen-strtab.awk" test0.h]) + +AT_DATA([test1.def], +[[@nozero +&hello hello +]]) +AT_CHECK([$AWK -f "$builddir/scripts/gen-strtab.awk" test1.h]) + +AT_DATA([test.c], +[[#include +#include HEADER +int main(void) { printf("%d %s\n", hello, strtab+hello); return 0; } +]]) +AT_CHECK([$CC -DHEADER='"test0.h"' -o test0$EXEEXT test.c && ./test0$EXEEXT], + [0], [[0 hello +]]) +AT_CHECK([$CC -DHEADER='"test1.h"' -o test1$EXEEXT test.c && ./test1$EXEEXT], + [0], [[1 hello +]]) + +AT_CLEANUP + +AT_SETUP([gen-strtab.awk l10n options]) +AT_KEYWORDS([gen-strtab awk script scripts]) + +AT_DATA([l10n.sed], dnl ( +[[/^#/b +s/.*N_(\([^)]*\)).*/\1/p +]]) + +AT_DATA([test0.def], +[[&a hello world +&b world +&c goodbye +]]) +AT_CHECK([$AWK -f "$builddir/scripts/gen-strtab.awk" test0.h]) +AT_CHECK([sed -n -f l10n.sed test0.h | LC_ALL=C sort], [0], +[["goodbye" +"hello world" +"world" +]]) + +AT_DATA([test1.def], +[[&a hello world +&&b world +&&c goodbye +]]) +AT_CHECK([$AWK -f "$builddir/scripts/gen-strtab.awk" test1.h]) +AT_CHECK([sed -n -f l10n.sed test1.h], [0], +[["hello world" +]]) + +AT_DATA([test.c], +[[#include +#include HEADER + +int main(void) +{ + printf("%s %s %s\n", strtab+a, strtab+b, strtab+c); + return 0; +} +]]) + +AT_CHECK([$CC -DHEADER='"test0.h"' -o test0$EXEEXT test.c && ./test0$EXEEXT], + [0], [[hello world world goodbye +]]) + +AT_CHECK([$CC -DHEADER='"test1.h"' -o test1$EXEEXT test.c && ./test1$EXEEXT], + [0], [[hello world world goodbye +]]) + + AT_CLEANUP AT_SETUP([gen-tree.awk])