X-Git-Url: http://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/8d922a2f63801c78bfebc41612cb57839f5367b8..9748f358ba2d6c9c732d5e12006255d45226328e:/tests/macros.at diff --git a/tests/macros.at b/tests/macros.at index a5efc23..9aadd03 100644 --- a/tests/macros.at +++ b/tests/macros.at @@ -1,4 +1,4 @@ -dnl Copyright © 2014-2015, 2018-2019, 2021-2022 Nick Bowler +dnl Copyright © 2014-2015, 2018-2019, 2021-2023 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. @@ -484,3 +484,193 @@ 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 3aclocal.m4 +AT_DATA([config.h.in], +[[#undef HAVE_FOR_DECLS +]]) +TEST_CONFIGURE_AC([m4_ifnblank([$1], [$1]) +[AC_CONFIG_HEADERS([config.h]) +DX_C_FOR_DECLARATIONS +]]) +AT_CHECK([$AUTOCONF], [0], [], [stderr]) +AT_DATA([test.c], +[[#if __STDC_VERSION__ < 199901 +#error nope +char nope[-1]; +#endif +char yup; +]]) +AT_CHECK([$CC -c -std=gnu99 test.c || exit 77], [0], [ignore], [ignore]) +TEST_CONFIGURE([CC="$CC" CFLAGS="-std=gnu89"]) +AT_CHECK([grep HAVE_FOR_DECLS config.h], [0], +[[/* #undef HAVE_FOR_DECLS */ +]]) +TEST_CONFIGURE([CC="$CC -std=gnu99"]) +AT_CHECK([grep HAVE_FOR_DECLS config.h], [0], +[[#define HAVE_FOR_DECLS 1 +]]) +]) + +AT_SETUP([DX_C_FOR_DECLARATIONS (autoconf-2.70)]) +AT_KEYWORDS([DX_C_FOR_DECLARATIONS macro]) +TEST_FIND_AUTOCONF([default 2.71 2.72 2.73 2.74], + [AS_VERSION_COMPARE(["$acver"], [2.70], [continue], [continue], [])]) +TEST_DX_C_FOR_DECLARATIONS +AT_CLEANUP