]> git.draconx.ca Git - dxcommon.git/blobdiff - tests/snippets.at
test-tap.at: Fix regression passing program arguments.
[dxcommon.git] / tests / snippets.at
index 32c1f701d7154f107c9302887444e863e8508afe..dc37d6bc43db51965418e37055d511f78146099b 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright © 2021 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.
@@ -10,8 +10,7 @@ m4_define([TEST_DEPFILES_INIT],
 [TEST_CONFIGURE_AC(
 [[AM_INIT_AUTOMAKE([foreign])
 
-DX_PROG_AUTOTEST
-AM_CONDITIONAL([HAVE_AUTOTEST], [test x"$dx_cv_autotest_works" = x"yes"])
+DX_PROG_AUTOTEST_AM
 
 AM_SET_DEPDIR
 AM_OUTPUT_DEPENDENCY_COMMANDS
@@ -58,3 +57,131 @@ AT_CHECK([{ echo 'rule:; @echo works' | dmake -f - >out 2>/dev/null &&
 AT_CHECK([./configure MAKE=dmake && test -f .deps/testsuite.P], [0], [ignore])
 
 AT_CLEANUP
+
+AT_SETUP([autotest.mk no depfiles])
+
+TEST_CONFIGURE_AC(
+[[AM_INIT_AUTOMAKE([foreign])
+
+AM_SET_DEPDIR
+AM_OUTPUT_DEPENDENCY_COMMANDS
+AM_MAKE_INCLUDE
+AM_DEP_TRACK
+
+DX_AUTOMAKE_COMPAT
+AM_CONDITIONAL([HAVE_AUTOTEST], [:])
+
+AC_CONFIG_FILES([Makefile])
+]])
+
+cp "$srcdir/snippet/autotest.mk" .
+AT_DATA([Makefile.am],
+[[DISTCLEANFILES =
+EXTRA_DIST =
+include $(top_srcdir)/autotest.mk
+]])
+TEST_AUTORECONF
+
+TEST_CONFIGURE([--disable-dependency-tracking])
+
+AT_DATA([testsuite.at])
+AT_CHECK([make -s AUTOTEST="$srcdir/t/autotest.sh" testsuite])
+
+AT_CLEANUP
+
+AT_SETUP([glconfig.mk no depfiles])
+
+TEST_CONFIGURE_AC(
+[[AM_INIT_AUTOMAKE([foreign])
+
+AM_SET_DEPDIR
+AM_OUTPUT_DEPENDENCY_COMMANDS
+AM_MAKE_INCLUDE
+AM_DEP_TRACK
+
+DX_AUTOMAKE_COMPAT
+AC_SUBST([GLSRC], [lib])
+
+AC_CONFIG_FILES([Makefile])
+]])
+
+cp "$srcdir/snippet/glconfig.mk" .
+AT_DATA([Makefile.am],
+[[CLEANFILES =
+DISTCLEANFILES =
+gnulib_headers =
+include $(top_srcdir)/glconfig.mk
+]])
+TEST_AUTORECONF
+
+TEST_CONFIGURE([--disable-dependency-tracking])
+AT_CHECK([make -s lib/glconfig.h])
+AT_CHECK([test ! -d lib/.deps && test ! -d lib/_deps && cat lib/glconfig.h])
+
+AT_CLEANUP
+
+AT_SETUP([gettext.mk .mo installation])
+
+cp "$srcdir/snippet/gettext.mk" "$srcdir/t/msgfmt.sh" .
+touch a.po b.po
+TEST_CONFIGURE_AC(
+[[AM_INIT_AUTOMAKE([foreign])
+AC_CONFIG_FILES([Makefile])
+]])
+
+AT_DATA([Makefile.am],
+[[MSGFMT = $(SHELL) $(top_srcdir)/msgfmt.sh
+EXTRA_DIST =
+MAINTAINERCLEANFILES =
+POFILES = a.po b.po
+MOFILES = a.mo b.mo
+include $(top_srcdir)/gettext.mk
+]])
+TEST_AUTORECONF
+
+mkdir build
+(cd build && TEST_CONFIGURE([--prefix="$at_group_dir/inst"], [../configure]))
+
+AT_CHECK([cd build &&
+  make DESTDIR="$at_group_dir" localedir=/l0 install],
+  [0], [ignore], [ignore])
+AT_CHECK([test -d inst || { find l0 | LC_ALL=C sort; }], [0],
+[[l0
+l0/a
+l0/a/LC_MESSAGES
+l0/a/LC_MESSAGES/test.mo
+l0/b
+l0/b/LC_MESSAGES
+l0/b/LC_MESSAGES/test.mo
+]])
+
+AT_CHECK([cd build &&
+  make DESTDIR="$at_group_dir" localedir=/l1 installdirs],
+  [0], [ignore], [ignore])
+AT_CHECK([test -d inst || { find l1 | LC_ALL=C sort; }], [0],
+[[l1
+l1/a
+l1/a/LC_MESSAGES
+l1/b
+l1/b/LC_MESSAGES
+]])
+
+AT_CHECK([cd build &&
+  make DESTDIR="$at_group_dir" localedir=/l2 MOFILES= install installdirs],
+  [0], [ignore], [ignore])
+AT_CHECK([test ! -d inst && test ! -d l2])
+
+AT_CHECK([cd build &&
+  make DESTDIR="$at_group_dir" localedir=/l0 MOFILES= uninstall],
+  [0], [ignore], [ignore])
+AT_CHECK([test -d inst || { find l0 | LC_ALL=C sort; }], [0],
+[[l0
+l0/a
+l0/a/LC_MESSAGES
+l0/b
+l0/b/LC_MESSAGES
+]])
+
+AT_CLEANUP
+
+TEST_TAP_SIMPLE([test-tap.at sanity], [tapcheck.sh 4 : : : :], [], [autotest])