]> git.draconx.ca Git - dxcommon.git/blobdiff - tests/scripts.at
tests: Ignore output from the C compiler.
[dxcommon.git] / tests / scripts.at
index 7a873a9086fcdaa4b4007f935ad34dcbd938ebb6..1748070616dd0477226cafc0694a9c678491c3e4 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright © 2021-2023 Nick Bowler
+dnl Copyright © 2021-2024 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.
@@ -93,7 +93,8 @@ int main(void)
   return 0;
 }
 ]])
-AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0], [], [ignore])
+AT_CHECK([$CC -o test0$EXEEXT test0.c 1>&2 && ./test0$EXEEXT],
+  [0], [], [ignore])
 
 # test 1: long option names and help text
 AT_DATA([test1.c],
@@ -144,7 +145,7 @@ AT_DATA([lopthelp.awk],
 ]])
 
 $AWK -f lopthelp.awk options.def >expout
-AT_CHECK([$CC -o test1$EXEEXT test1.c && ./test1$EXEEXT],
+AT_CHECK([$CC -o test1$EXEEXT test1.c 1>&2 && ./test1$EXEEXT],
   [0], [expout], [ignore])
 
 # test 2: short option string
@@ -191,7 +192,7 @@ AT_DATA([soptstr.awk],
 ]])
 
 $AWK -f soptstr.awk options.def >expout
-AT_CHECK([$CC -o test2$EXEEXT test2.c && ./test2$EXEEXT],
+AT_CHECK([$CC -o test2$EXEEXT test2.c 1>&2 && ./test2$EXEEXT],
   [0], [expout], [ignore])
 
 AT_CLEANUP
@@ -312,23 +313,23 @@ int main(void)
 
 TEST_GEN_OPTIONS([[--single-option
 ]], [single.dat])
-AT_CHECK([$CC -o single$EXEEXT test.c && ./single$EXEEXT], [0],
+AT_CHECK([$CC -o single$EXEEXT test.c 1>&2 && ./single$EXEEXT], [0],
 [[0
 --single-option, 0, 0
-]])
+]], [ignore])
 
 TEST_GEN_OPTIONS([[-a, --the-first-option
 -b, --the-second-option=ARG
 -c, --the-third-option[=ARG]
 -d, --the-fourth-option
 ]], [16bit.dat])
-AT_CHECK([$CC -o 16bit$EXEEXT test.c && ./16bit$EXEEXT], [0],
+AT_CHECK([$CC -o 16bit$EXEEXT test.c 1>&2 && ./16bit$EXEEXT], [0],
 [[2
 --the-first-option, 0, 'a'
 --the-second-option, 1, 'b'
 --the-third-option, 2, 'c'
 --the-fourth-option, 0, 'd'
-]])
+]], [ignore])
 
 AT_CLEANUP
 
@@ -377,7 +378,7 @@ AS_ECHO(['  return 0;'])
 AS_ECHO(['}'])
 } <identifiers >test0.c
 
-AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0], [---
+AT_CHECK([$CC -o test0$EXEEXT test0.c 1>&2 && ./test0$EXEEXT], [0], [---
 world
 ---
 hello world
@@ -433,12 +434,12 @@ AT_DATA([test.c],
 #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_CHECK([$CC -DHEADER='"test0.h"' -o test0$EXEEXT test.c 1>&2 &&
+  ./test0$EXEEXT], [0], [[0 hello
+]], [ignore])
+AT_CHECK([$CC -DHEADER='"test1.h"' -o test1$EXEEXT test.c 1>&2 &&
+  ./test1$EXEEXT], [0], [[1 hello
+]], [ignore])
 
 AT_CLEANUP
 
@@ -465,11 +466,11 @@ int main(void)
   return 0;
 }
 ]])
-AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0],
+AT_CHECK([$CC -o test0$EXEEXT test0.c 1>&2 && ./test0$EXEEXT], [0],
 [[foobar
 bar
 baz
-]])
+]], [ignore])
 
 AT_CLEANUP
 
@@ -514,13 +515,13 @@ int main(void)
 }
 ]])
 
-AT_CHECK([$CC -DHEADER='"test0.h"' -o test0$EXEEXT test.c && ./test0$EXEEXT],
-  [0], [[hello world world goodbye
-]])
+AT_CHECK([$CC -DHEADER='"test0.h"' -o test0$EXEEXT test.c 1>&2 &&
+  ./test0$EXEEXT], [0], [[hello world world goodbye
+]], [ignore])
 
-AT_CHECK([$CC -DHEADER='"test1.h"' -o test1$EXEEXT test.c && ./test1$EXEEXT],
-  [0], [[hello world world goodbye
-]])
+AT_CHECK([$CC -DHEADER='"test1.h"' -o test1$EXEEXT test.c 1>&2 &&
+  ./test1$EXEEXT], [0], [[hello world world goodbye
+]], [ignore])
 
 
 AT_CLEANUP
@@ -593,7 +594,8 @@ int main(void)
 }
 ]])
 sed '/^#/d' tree.def >expout
-AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0], [expout])
+AT_CHECK([$CC -o test0$EXEEXT test0.c 1>&2 && ./test0$EXEEXT],
+  [0], [expout], [ignore])
 
 AT_CLEANUP
 
@@ -635,7 +637,7 @@ int main(void)
 }
 ]])
 
-AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0],
+AT_CHECK([$CC -o test0$EXEEXT test0.c 1>&2 && ./test0$EXEEXT], [0],
 [[1, 3
 2, 6
 0, 0
@@ -645,7 +647,7 @@ AT_CHECK([$CC -o test0$EXEEXT test0.c && ./test0$EXEEXT], [0],
 1, 0
 2, 0
 0, 0
-]])
+]], [ignore])
 
 AT_DATA([flat.def],
 [[FLAT
@@ -657,12 +659,12 @@ AT_DATA([flat.def],
 AT_CHECK([$AWK -f "$srcdir/scripts/gen-tree.awk" <flat.def >flat.h])
 
 sed -e 's/tree\.h/flat.h/' -e 's/ROOT/FLAT/' test0.c >test1.c
-AT_CHECK([$CC -o test1$EXEEXT test1.c && ./test1$EXEEXT], [0],
+AT_CHECK([$CC -o test1$EXEEXT test1.c 1>&2 && ./test1$EXEEXT], [0],
 [[1, 0
 2, 0
 3, 0
 0, 0
-]])
+]], [ignore])
 
 AT_CLEANUP
 
@@ -910,38 +912,6 @@ grep SED_HEADER test.mk], [0], [expout])
 
 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])
 
@@ -965,34 +935,31 @@ 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