AT_BANNER([Script tests])
+AT_SETUP([bake-config.awk])
+AT_KEYWORDS([bake-config awk script scripts])
+
+AT_DATA([cfg.h],
+[[#define hello world
+/* #undef HAVE_STUFF */
+#define HAVE_OTHER_STUFF 1
+/* #undef HAVE_CRAZY_STUFF */
+]])
+
+AT_DATA([lib.h],
+[[#if HAVE_STUFF
+# define foo hello__
+#elif HAVE_CRAZY_STUFF
+# define foo hello
+#elif HAVE_OTHER_STUFF
+# define foo __hello
+#endif
+]])
+
+AT_CHECK([$AWK -f "$srcdir/scripts/bake-config.awk" cfg.h lib.h], [0],
+[[#if 0 /* HAVE_STUFF */
+# define foo hello__
+#elif 0 /* HAVE_CRAZY_STUFF */
+# define foo world /* hello */
+#elif 1 /* HAVE_OTHER_STUFF */
+# define foo __hello
+#endif
+]])
+
+AT_CLEANUP
+
m4_define([TEST_GEN_OPTIONS],
[AT_KEYWORDS([gen-options awk script scripts])dnl
AT_DATA([m4_default([$2], [options.def])], [$1])
\ leading whitespace
&j oneline
# with a comment
+&k with nontrivial whitespace
]])
AT_CHECK([$AWK -f "$srcdir/scripts/gen-strtab.awk" <test.def >test.h])
---
oneline
---
+with nontrivial whitespace
+---
], [ignore])
AT_CLEANUP
AT_CLEANUP
-AT_SETUP([fix-gnulib.pl %reldir% substitution])
-AT_KEYWORDS([fix-gnulib perl script scripts])
-
-test_gnulib_mk sys_types >test.mk.in
-AT_CHECK([grep '%reldir%' test.mk.in >/dev/null || exit 99])
-
-sed -n <test.mk.in >expout '
-$G
-$p
-$b
-/^## begin gnulib/,/^## end gnulib/!b
-/^#/{
-p
-b
-}
-s|(srcdir)|(top_srcdir)|
-s|%reldir%|lib|
-s|BUILT_SOURCES|gnulib_core_headers|
-s|sys[[/_]]|lib/&|g
-/^MOSTLYCLEANFILES/{
-h
-b
-}
-p'
-
-AT_CHECK([test_fix_gnulib -i test.mk.in -o test.mk || exit
-sed -n -e '/^## begin gnulib/,/^## end gnulib/p' \
- -e '/CLEANFILES/p' test.mk],
-[0], [expout])
-
-AT_CLEANUP
-
AT_SETUP([fix-gnulib.pl warning removal])
AT_KEYWORDS([fix-gnulib perl script scripts])
AT_SETUP([fix-gnulib.pl header directory creation])
AT_KEYWORDS([fix-gnulib perl script scripts])
-AT_DATA([extract.sed],
-[[/AM_V_GEN/b ok
-/gl_V_at/b ok
-s/:.*/:/
-h
-b
-:ok
-s/'//g
-x
-G
-p
-n
-s/[)].*/)/
-p
+AT_DATA([extract.awk],
+[[$0 !~ /^\t/ && $1 ~ /:$/ {
+ target=$1;
+
+ for (i = 2; i <= NF; i++) {
+ if ($i ~ /am__dirstamp/)
+ target = target " " $i;
+ }
+
+ next;
+}
+
+target != "" && sub(/[$][({](AM_V_GEN|gl_V_at)[})].*$/, "[OK]") {
+ print target, $1;
+}
+
+{ target=""; }
]])
test_gnulib_mk alloca-opt sys_types stddef >test.mk.in
AT_CHECK([test_fix_gnulib -i test.mk.in -o test.mk || exit
-sed -n -f extract.sed test.mk], [0],
-[[lib/alloca.h:
- $(AM_V_GEN)$(MKDIR_P) lib
- $(AM_V_at)
-lib/sys/types.h:
- $(AM_V_GEN)$(MKDIR_P) lib/sys
- $(AM_V_at)
-lib/stddef.h:
- $(AM_V_GEN)$(MKDIR_P) lib
- $(AM_V_at)
+$AWK -f extract.awk test.mk], [0],
+[[lib/alloca.h: lib/$(am__dirstamp) [OK]
+lib/sys/types.h: lib/sys/$(am__dirstamp) [OK]
+lib/stddef.h: lib/$(am__dirstamp) [OK]
]])
AT_CLEANUP