Import c99types.h and related probes from cdecl99.
[dxcommon.git] / tests / snippets.at
bloba15b56e79fa3e9f14b979f99bac37717bb9707b5
1 # Copyright © 2021-2024 Nick Bowler
3 # This program is free software: you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation, either version 3 of the License, or
6 # (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
16 AT_BANNER([Automake snippet tests])
18 m4_define([TEST_DEPFILES_INIT],
19 [TEST_DEPFILES_INIT_CONFIGURE
20 TEST_DEPFILES_INIT_MAKEFILE
21 TEST_AUTORECONF])
23 m4_define([TEST_DEPFILES_INIT_CONFIGURE], [TEST_CONFIGURE_AC(
24 [[AM_INIT_AUTOMAKE([foreign])
26 DX_PROG_AUTOTEST_AM
28 AM_SET_DEPDIR
29 AM_OUTPUT_DEPENDENCY_COMMANDS
30 AM_MAKE_INCLUDE
31 AM_DEP_TRACK
33 AC_CONFIG_FILES([Makefile])
34 ]m4_n([$1])])])
36 m4_define([TEST_DEPFILES_INIT_MAKEFILE],
37 [cp "$srcdir/snippet/autotest.mk" .
38 AT_DATA([Makefile.am],
39 [[EXTRA_DIST =
40 DISTCLEANFILES =
41 include $(top_srcdir)/autotest.mk
42 ]m4_n([$1])])])
44 AT_SETUP([autotest.mk depfiles (MAKE=gmake)])
46 TEST_DEPFILES_INIT
48 # gmake sanity check
49 AT_CHECK([{ echo 'rule:; @: $(info works)' |
50               gmake --no-print-directory -f - >out 2>/dev/null &&
51             read s <out && test x"$s" = x"works"; } || exit 77])
53 mkdir build
54 AT_CHECK([cd build && ../configure MAKE=gmake && test -f .deps/testsuite.P],
55   [0], [ignore])
56 AT_CHECK([gmake --no-print-directory -sC build distclean &&
57   find build -type f])
59 AT_CLEANUP
61 AT_SETUP([autotest.mk depfiles (MAKE=dmake)])
63 TEST_DEPFILES_INIT
65 # dmake sanity check
66 AT_CHECK([{ echo 'rule:; @echo works' | dmake -f - >out 2>/dev/null &&
67             read s <out && test x"$s" = x"works"; } || exit 77])
69 AT_CHECK([./configure MAKE=dmake && test -f .deps/testsuite.P], [0], [ignore])
71 AT_CLEANUP
73 AT_SETUP([autotest.mk no depfiles])
75 TEST_CONFIGURE_AC(
76 [[AM_INIT_AUTOMAKE([foreign])
78 AM_SET_DEPDIR
79 AM_OUTPUT_DEPENDENCY_COMMANDS
80 AM_MAKE_INCLUDE
81 AM_DEP_TRACK
83 DX_AUTOMAKE_COMPAT
84 AM_CONDITIONAL([HAVE_AUTOTEST], [:])
86 AC_CONFIG_FILES([Makefile])
87 ]])
89 cp "$srcdir/snippet/autotest.mk" .
90 AT_DATA([Makefile.am],
91 [[DISTCLEANFILES =
92 EXTRA_DIST =
93 include $(top_srcdir)/autotest.mk
94 ]])
95 TEST_AUTORECONF
97 TEST_CONFIGURE([--disable-dependency-tracking])
99 AT_DATA([testsuite.at])
100 AT_CHECK([make -s AUTOTEST="$srcdir/t/autotest.sh" testsuite])
102 AT_CLEANUP
104 # Check that the distribution does not fail if the generated testsuite
105 # dependencies include a file which is already in the distribution.
106 AT_SETUP([autotest.mk distribution])
108 mkdir ro && {
109   echo ro >ro/ro
110   echo rw >ro/rw
112 chmod a-w ro/ro ro
113 eval ': >package.m4 >testsuite.at'
115 TEST_DEPFILES_INIT_CONFIGURE
116 TEST_DEPFILES_INIT_MAKEFILE([EXTRA_DIST += ro/ro])
118 eval ': >testsuite'
119 TEST_AUTORECONF
120 { echo ro/ro; echo ro/rw; } >testsuite.deps
121 TEST_CONFIGURE([--disable-dependency-tracking])
122 AT_CHECK([make -s distdir && cat test-0/ro/ro test-0/ro/rw], [0],
123 [[ro
127 AT_CLEANUP
129 AT_SETUP([glconfig.mk no depfiles])
131 TEST_CONFIGURE_AC(
132 [[AM_INIT_AUTOMAKE([foreign])
134 AM_SET_DEPDIR
135 AM_OUTPUT_DEPENDENCY_COMMANDS
136 AM_MAKE_INCLUDE
137 AM_DEP_TRACK
139 DX_AUTOMAKE_COMPAT
140 AC_SUBST([GLSRC], [lib])
142 AC_CONFIG_FILES([Makefile])
145 cp "$srcdir/snippet/glconfig.mk" .
146 AT_DATA([Makefile.am],
147 [[CLEANFILES =
148 DISTCLEANFILES =
149 gnulib_headers =
150 include $(top_srcdir)/glconfig.mk
152 TEST_AUTORECONF
154 TEST_CONFIGURE([--disable-dependency-tracking])
155 AT_CHECK([make -s lib/glconfig.h])
156 AT_CHECK([test ! -d lib/.deps && test ! -d lib/_deps && cat lib/glconfig.h])
158 AT_CLEANUP
160 AT_SETUP([gettext.mk .mo installation])
162 cp "$srcdir/snippet/gettext.mk" "$srcdir/t/msgfmt.sh" .
163 touch a.po b.po
164 TEST_CONFIGURE_AC(
165 [[AM_INIT_AUTOMAKE([foreign])
166 AC_CONFIG_FILES([Makefile])
169 AT_DATA([Makefile.am],
170 [[MSGFMT = $(SHELL) $(top_srcdir)/msgfmt.sh
171 EXTRA_DIST =
172 MAINTAINERCLEANFILES =
173 POFILES = a.po b.po
174 MOFILES = a.mo b.mo
175 include $(top_srcdir)/gettext.mk
177 TEST_AUTORECONF
179 mkdir build
180 (cd build && TEST_CONFIGURE([--prefix="$at_group_dir/inst"], [../configure]))
182 AT_CHECK([cd build &&
183   make DESTDIR="$at_group_dir" localedir=/l0 install],
184   [0], [ignore], [ignore])
185 AT_CHECK([test -d inst || { find l0 | LC_ALL=C sort; }], [0],
186 [[l0
187 l0/a
188 l0/a/LC_MESSAGES
189 l0/a/LC_MESSAGES/test.mo
190 l0/b
191 l0/b/LC_MESSAGES
192 l0/b/LC_MESSAGES/test.mo
195 AT_CHECK([cd build &&
196   make DESTDIR="$at_group_dir" localedir=/l1 installdirs],
197   [0], [ignore], [ignore])
198 AT_CHECK([test -d inst || { find l1 | LC_ALL=C sort; }], [0],
199 [[l1
200 l1/a
201 l1/a/LC_MESSAGES
202 l1/b
203 l1/b/LC_MESSAGES
206 AT_CHECK([cd build &&
207   make DESTDIR="$at_group_dir" localedir=/l2 MOFILES= install installdirs],
208   [0], [ignore], [ignore])
209 AT_CHECK([test ! -d inst && test ! -d l2])
211 AT_CHECK([cd build &&
212   make DESTDIR="$at_group_dir" localedir=/l0 MOFILES= uninstall],
213   [0], [ignore], [ignore])
214 AT_CHECK([test -d inst || { find l0 | LC_ALL=C sort; }], [0],
215 [[l0
216 l0/a
217 l0/a/LC_MESSAGES
218 l0/b
219 l0/b/LC_MESSAGES
222 AT_CLEANUP
224 TEST_TAP_SIMPLE([test-tap.at sanity], [tapcheck.sh 4 : : : :], [], [autotest])