]> git.draconx.ca Git - dxcommon.git/blobdiff - tests/scripts.at
DX_PROG_AUTOTEST: Modernize.
[dxcommon.git] / tests / scripts.at
index dbec2c9024e9d54ec4b133aa6cf34b0a053561b6..92db0a1675ab474b5e6fb15469ebd575c52f23f8 100644 (file)
@@ -6,6 +6,38 @@ dnl There is NO WARRANTY, to the extent permitted by law.
 
 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])
@@ -324,6 +356,7 @@ newline\
 \   leading whitespace
 &j oneline
 # with a comment
+&k    with   nontrivial   whitespace
 ]])
 
 AT_CHECK([$AWK -f "$srcdir/scripts/gen-strtab.awk" <test.def >test.h])
@@ -375,6 +408,8 @@ nonewline
 ---
 oneline
 ---
+with   nontrivial   whitespace
+---
 ], [ignore])
 
 AT_CLEANUP
@@ -848,24 +883,25 @@ AT_CLEANUP
 m4_divert_push([PREPARE_TESTS])dnl
 test_fix_ltdl () {
   $PERL -e 'my $x = 42; exit $x;'; test $? = 42 || exit 77
-  $PERL -f "$srcdir/scripts/fix-ltdl.pl" "$@"
+  $PERL "$srcdir/scripts/fix-ltdl.pl" "$@"
 }
 test_fix_gnulib () {
   $PERL -e 'my $x = 42; exit $x;'; test $? = 42 || exit 77
-  $PERL -f "$srcdir/scripts/fix-gnulib.pl" "$@"
+  $PERL "$srcdir/scripts/fix-gnulib.pl" "$@"
 }
 test_gnulib_mk () {
   echo;
   for arg
   do
-    sed -n -f - "$srcdir/tests/data/gnulib.mk" <<EOF
-/^## begin gnulib module $arg/,/^## end   gnulib module $arg/p
-EOF
+    sed -n -e \
+      "/^## begin gnulib module $arg/,/^## end   gnulib module $arg/p" \
+      "$srcdir/tests/data/gnulib.mk"
   done
 }
 m4_divert_pop([PREPARE_TESTS])
 
 AT_SETUP([fix-gnulib.pl SED_HEADER variables])
+AT_KEYWORDS([fix-gnulib perl script scripts])
 
 test_gnulib_mk gen-header >test.mk.in
 AT_CHECK([grep SED_HEADER test.mk.in >expout || exit 99])
@@ -874,31 +910,8 @@ grep SED_HEADER test.mk], [0], [expout])
 
 AT_CLEANUP
 
-AT_SETUP([fix-gnulib.pl %reldir% substitution])
-
-test_gnulib_mk sys_types >test.mk.in
-AT_CHECK([grep '%reldir%' test.mk.in >/dev/null || exit 99])
-
-sed -n -f - test.mk.in >expout <<'EOF'
-${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
-EOF
-
-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_DATA([test.mk.in], [[
 ## test begin
@@ -918,35 +931,33 @@ EXTRA_LIBRARIES += libgnu.a
 AT_CLEANUP
 
 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
@@ -1025,6 +1036,7 @@ helloworld
 ])])
 
 AT_SETUP([fix-ltdl.pl LIBOBJ mangling (<automake-1.16)])
+AT_KEYWORDS([fix-ltdl perl script scripts])
 
 TEST_FIND_AUTOMAKE([default 1.10 1.11 1.12 1.13 1.14 1.15],
   [AS_VERSION_COMPARE(["$amver"], [1.16], [], [continue], [continue])])
@@ -1033,6 +1045,7 @@ TEST_LTDL_LIBOBJ_MANGLING
 AT_CLEANUP
 
 AT_SETUP([fix-ltdl.pl LIBOBJ mangling (>=automake-1.16)])
+AT_KEYWORDS([fix-ltdl perl script scripts])
 
 TEST_FIND_AUTOMAKE([default 1.16 1.17 1.18 1.19],
   [AS_VERSION_COMPARE(["$amver"], [1.16], [continue])])