1 dnl Copyright © 2014-2015, 2018 Nick Bowler
3 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
4 dnl This is free software: you are free to do what the fuck you want to.
5 dnl There is NO WARRANTY, to the extent permitted by law.
7 AT_BANNER([Autoconf macros])
9 m4_define([TEST_CONFIGURE_AC], [AT_DATA([configure.ac],
10 [[AC_INIT([test], [0])
14 cp "$srcdir/install-sh" \
15 "$srcdir/config.guess" \
16 "$srcdir/config.sub" \
20 m4_define([TEST_AUTORECONF],
21 [AT_CHECK([autoreconf -I "$srcdir/m4"], [0], [], [stderr])])
23 m4_define([TEST_CONFIGURE], [AT_CHECK([./configure $1], [0], [ignore])])
25 dnl Verify that the DX_BASEDIR macro expands correctly during argument
26 dnl collection. Crucially, the output must not contain any other text.
27 AT_SETUP([DX_BASEDIR during argument collection])
28 AT_KEYWORDS([DX_BASEDIR macro])
35 [[AC_SUBST([TEST], 'm4@&t@_dquote(DX_BASEDIR)')
36 AC_CONFIG_FILES([test])
41 printf '%s\n' "$srcdir" | sed -e 's:/\./:/:g' -e 's:/\.$::g' \
42 -e 's:\(.\)//*:\1/:g' >expout
43 AT_CHECK([cat test], [0], [expout])
47 dnl Verify that DX_BASEDIR is correctly AC_SUBSTed
48 AT_SETUP([DX_BASEDIR output substitution])
49 AT_KEYWORDS([DX_BASEDIR macro])
57 AC_CONFIG_FILES([test])
62 printf '%s\n' "$srcdir" | sed -e 's:/\./:/:g' -e 's:/\.$::g' \
63 -e 's:\(.\)//*:\1/:g' >expout
64 AT_CHECK([cat test], [0], [expout])
68 dnl Verify that DX_BASEDIR is set correctly implicitly
69 AT_SETUP([DX_BASEDIR implicit definition])
70 AT_KEYWORDS([DX_BASEDIR macro])
78 AC_CONFIG_FILES([test])
85 AT_SETUP([DX_COMMAND_OUTPUT])
86 AT_KEYWORDS([DX_COMMAND_OUTPUT macro])
90 trailing whitespace @&t@
98 [[DX_COMMAND_OUTPUT([var], [cat expout])
99 AS@&t@_ECHO(["$var"]) >test.out
104 AT_CHECK([cat test.out], [0], [expout])
108 AT_SETUP([DX_DO quoting])
109 AT_KEYWORDS([DX_DO macro])
112 [[m4@&t@_define([FOO])
113 :; { DX_DO([AS@&t@_ECHO_N(["[FOO]"])],
114 [AS@&t@_ECHO_N(["[FOO]"])],
115 [AS@&t@_ECHO(["[FOO]"])])
119 dnl TEST_CONFIGURE_AC(
120 dnl [[DX_DO([AS@&t@_ECHO_N([hello,world])],[AS@&t@_ECHO_N([goodbye,world])])
124 AT_CHECK([cat test.out], [0], [[FOOFOOFOO