]> git.draconx.ca Git - dxcommon.git/blobdiff - tests/macros.at
tests: Add some coverage of the gettext.mk snippet.
[dxcommon.git] / tests / macros.at
index 5202790440548a9ce93650478e7e95ef51ca74c2..a085ad6ab50aeb2ff39ca7c300b5f17f60d0b9f9 100644 (file)
@@ -340,11 +340,8 @@ exit 1])
 
 AT_CLEANUP
 
-AT_SETUP([DX_GNULIB_SYMFILES])
-AT_KEYWORDS([DX_GNULIB_SYMFILES macro])
-
-echo : >compile
-TEST_CONFIGURE_AC([[AM_INIT_AUTOMAKE([foreign])
+m4_define([TEST_SYMFILES_INIT],
+[TEST_CONFIGURE_AC([[AM_INIT_AUTOMAKE([foreign])
 AM_PROG_CC_C_O
 AC_SUBST([GLSRC], [.])
 DX_AUTOMAKE_COMPAT
@@ -352,11 +349,6 @@ DX_GNULIB_SYMFILES([symfiles.lst])
 AC_CONFIG_FILES([Makefile])
 ]])
 
-AT_DATA([symfiles.lst],
-[[b.foo
-d.bar
-]])
-
 cp "$srcdir/snippet/glconfig.mk" .
 AT_DATA([Makefile.am],
 [[CLEANFILES =
@@ -377,6 +369,15 @@ do_test:
 .PHONY: do_test
 
 include $(top_srcdir)/glconfig.mk
+]])])
+
+AT_SETUP([DX_GNULIB_SYMFILES])
+AT_KEYWORDS([DX_GNULIB_SYMFILES macro])
+
+TEST_SYMFILES_INIT
+AT_DATA([symfiles.lst],
+[[b.foo
+d.bar
 ]])
 TEST_AUTORECONF
 
@@ -406,6 +407,60 @@ e.o
 
 AT_CLEANUP
 
+AT_SETUP([DX_GNULIB_SYMFILES separate srcdir])
+AT_KEYWORDS([DX_GNULIB_SYMFILES macro vpath])
+
+TEST_SYMFILES_INIT
+AT_DATA([symfiles.lst])
+TEST_AUTORECONF
+
+mkdir build && cd build
+TEST_CONFIGURE([], [../configure])
+AT_CHECK([make -s do_test], [0], [[
+///
+a.o
+b.o
+c.o
+d.o
+e.o
+]])
+cd ..
+
+AT_CLEANUP
+
+AT_SETUP([DX_GNULIB_SYMFILES shortname])
+AT_KEYWORDS([DX_GNULIB_SYMFILES macro])
+
+TEST_SYMFILES_INIT
+
+sed '/GNULIB_SYMFILES/c\
+[DX_GNULIB_SYMFILES([symfiles.lst], [x])]' configure.ac >configure.tmp
+sed '/gnulib_objects/s|$| a/b.o a/b/c.o|' Makefile.am >Makefile.tmp
+mv -f configure.tmp configure.ac
+mv -f Makefile.tmp Makefile.am
+
+AT_DATA([symfiles.lst],
+[[b.c
+c.c
+d.c
+e.c
+]])
+TEST_AUTORECONF
+
+TEST_CONFIGURE
+AT_CHECK([make -s do_test], [0],
+[[b.glsym
+c.glsym
+d.glsym
+e.glsym
+///
+a/b/x-c.o
+a/x-b.o
+x-a.o
+]])
+
+AT_CLEANUP
+
 AT_SETUP([DX_GNULIB_SYMFILES distribution])
 AT_KEYWORDS([DX_GNULIB_SYMFILES macro])
 
@@ -429,3 +484,116 @@ done
 exit 1])
 
 AT_CLEANUP
+
+AT_SETUP([DX_EXPORTED_SH])
+AT_KEYWORDS([DX_EXPORTED_SH exported.sh macro])
+
+AT_DATA([helpopt.nm],
+[[0000000000000000 r .LC0
+000000000000001e r .LC1
+0000000000000025 r .LC2
+                 U __errno_location
+                 U __printf_chk
+                 U __stack_chk_fail
+0000000000000000 T arg_to_int
+0000000000000000 b dummy.0
+                 U help_print_optstring
+0000000000000000 T main
+00000000000000c0 T print_opt
+                 U strchr
+                 U strerror
+                 U strtol
+                 U tap_bail_out
+]])
+
+AT_DATA([helpopt-shared.lo],
+[[pic_object=helpopt.nm
+non_pic_object=none
+]])
+
+AT_DATA([helpopt-static.lo],
+[[non_pic_object=helpopt.nm
+pic_object=none
+]])
+
+AT_DATA([helpopt.lo],
+[[non_pic_object=helpopt.nm
+pic_object=helpopt.nm
+]])
+
+AT_DATA([expout],
+[[arg_to_int
+main
+print_opt
+]])
+
+TEST_CONFIGURE_AC([[AC_PROVIDE([LT_INIT])
+AC_SUBST([NM], [cat])
+lt_cv_sys_global_symbol_pipe="sed -n -e '/ T /p'"
+DX_EXPORTED_SH
+]])
+TEST_AUTORECONF
+TEST_CONFIGURE
+
+AT_CHECK([$SHELL exported.sh helpopt.nm], [0], [expout])
+AT_CHECK([$SHELL exported.sh helpopt-shared.lo], [0], [expout])
+AT_CHECK([$SHELL exported.sh helpopt-static.lo], [0], [expout])
+AT_CHECK([$SHELL exported.sh helpopt.lo], [0], [expout])
+AT_CHECK([$SHELL exported.sh nonexistent], [1], [], [ignore])
+
+AT_CLEANUP
+
+AT_SETUP([DX_W32_GUI])
+
+AT_DATA([test.in], [[@dx_cv_w32_gui@
+@dx_cv_w32_gui_flags@
+]])
+
+TEST_CONFIGURE_AC([[DX_W32_GUI
+AC_SUBST([dx_cv_w32_gui])
+AC_SUBST([dx_cv_w32_gui_flags])
+AC_CONFIG_FILES([test])
+]])
+TEST_AUTORECONF
+
+myconf="cross_compiling=yes --host=none CC=$srcdir/t/ccw32.sh"
+
+TEST_CONFIGURE([TEST_SUBSYS=2 TEST_GUI_FLAG=-mwindows $myconf])
+AT_CHECK([cat test], [0], [none needed
+
+])
+
+TEST_CONFIGURE([TEST_SUBSYS=3 TEST_GUI_FLAG=-mwindows $myconf])
+AT_CHECK([cat test], [0], [-mwindows
+-mwindows
+])
+
+TEST_CONFIGURE([TEST_SUBSYS=4 TEST_GUI_FLAG=xxx $myconf])
+AT_CHECK([cat test], [0], [unknown
+
+])
+
+AT_CLEANUP
+
+AT_SETUP([DX_W32_GUI distribution])
+AT_KEYWORDS([DX_W32_GUI macro])
+
+TEST_CONFIGURE_AC([[AM_INIT_AUTOMAKE([foreign])
+DX_W32_GUI
+AC_CONFIG_FILES([Makefile])
+]])
+
+AT_DATA([Makefile.am],
+[[foo: ; printf '%s\n' $(DX_BASEDIR) $(DISTFILES)
+]])
+TEST_AUTORECONF
+
+TEST_CONFIGURE
+AT_CHECK([make -s foo], [0], [stdout])
+AT_CHECK([exec 3<stdout
+read basedir <&3; while read f <&3; do
+  test x"$f" = x"$basedir/scripts/pe-subsys.awk" && exit
+done
+exit 1])
+
+AT_CLEANUP