X-Git-Url: http://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/803e498e869f88d9daceadf143e3360c17cb7410..18c520e1c6d44a8c68328f3ffa4d64434fb454b8:/tests/libs.at diff --git a/tests/libs.at b/tests/libs.at index cc09cea..89ecf67 100644 --- a/tests/libs.at +++ b/tests/libs.at @@ -1,4 +1,4 @@ -dnl Copyright © 2019 Nick Bowler +dnl Copyright © 2019-2020, 2022 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. @@ -21,6 +21,7 @@ do case \$arg in --cflags) cflags=]$1[;; --libs) libs=]$2[;; + --atleast-pkgconfig-version) exit;; esac done printf '%s %s\n' "\$cflags" "\$libs" @@ -29,7 +30,7 @@ chmod +x pkg-config ]]) AT_SETUP([libdiscid probes]) -AT_KEYWORDS([libdiscid]) +AT_KEYWORDS([lib libdiscid]) mkdir discid AT_DATA([discid/discid.h], @@ -82,6 +83,60 @@ TEST_CONFIGURE([PKG_CONFIG=false CFLAGS='-I. -DDISCID_VERSION_MAJOR=0']) AT_CHECK_UNQUOTED([cat test], [0], [no +]) + +AT_CLEANUP + +AT_SETUP([curses probes]) +AT_KEYWORDS([lib curses ncurses]) + +AT_DATA([curses.h], +[[void initscr(void) { } +void endwin(void) { } +void curs_set(int); +]]) + +AT_DATA([test.in], +[[@HAVE_CURSES@ +@CURSES_CFLAGS@ +@CURSES_LIBS@ +]]) + +TEST_CONFIGURE_AC([[DX_LIB_CURSES([HAVE_CURSES=yes], [HAVE_CURSES=no]) +AC_SUBST([HAVE_CURSES]) +AC_CONFIG_FILES([test]) +]]) +TEST_AUTORECONF + +# Check the search via explicit flags +TEST_CONFIGURE([CURSES_CFLAGS=-I. CURSES_LIBS="$builddir/t/libdummy.a"]) +AT_CHECK_UNQUOTED([cat test], [0], [yes +-I. +$builddir/t/libdummy.a +]) + +# Check the search via pkg-config +TEST_DUMMY_PKGCONFIG([-I.], [$builddir/t/libdummy.a]) +TEST_CONFIGURE([PKG_CONFIG=$PWD/pkg-config]) +AT_CHECK_UNQUOTED([cat test], [0], [yes +-I. +$builddir/t/libdummy.a +]) + +# Check the default -lcurses search +cp "$builddir/t/libdummy.a" libcurses.a +TEST_CONFIGURE([PKG_CONFIG=false CFLAGS=-I. LDFLAGS=-L.]) +AT_CHECK_UNQUOTED([cat test], [0], [yes + +-lcurses +]) + +# Check the failure case +cp "$builddir/t/libempty.a" libcurses.a +TEST_CONFIGURE([PKG_CONFIG=false CFLAGS=-I. LDFLAGS=-L.]) +AT_CHECK_UNQUOTED([cat test], [0], [no + + ]) AT_CLEANUP @@ -125,11 +180,15 @@ TEST_AUTORECONF TEST_CONFIGURE([PKG_CONFIG=$PWD/pkg-config]) AT_CHECK([./test.sh], [0], [ignore], [ignore]) -AT_CHECK([grep G_INLINE_FUNC config.h], [0], +AT_CHECK([grep '#.*G_INLINE_FUNC' config.h], [0], [/* #undef G_INLINE_FUNC */ ]) +AT_CHECK([grep '#.*G_IMPLEMENT_INLINES' config.h], [0], +[/* #undef G_IMPLEMENT_INLINES */ +]) -cat >>glib.h <<'EOF' +cp glib.h glib-orig.h +cat glib-orig.h - >glib.h <<'EOF' #ifndef G_INLINE_FUNC # define G_INLINE_FUNC extern inline #endif @@ -137,8 +196,28 @@ G_INLINE_FUNC void break_things(void) { } EOF TEST_CONFIGURE([PKG_CONFIG=$PWD/pkg-config]) -AT_CHECK([grep G_INLINE_FUNC config.h], [0], +AT_CHECK([grep '#.*G_INLINE_FUNC' config.h], [0], [#define G_INLINE_FUNC static inline ]) +AT_CHECK([grep '#.*G_IMPLEMENT_INLINES' config.h], [0], +[/* #undef G_IMPLEMENT_INLINES */ +]) + +cat glib-orig.h - >glib.h <<'EOF' +#define G_INLINE_FUNC extern inline +#ifdef G_IMPLEMENT_INLINES +extern void break_things(void); +#else +G_INLINE_FUNC void break_things(void) { } +#endif +EOF + +TEST_CONFIGURE([PKG_CONFIG=$PWD/pkg-config]) +AT_CHECK([grep '#.*G_INLINE_FUNC' config.h], [0], +[/* #undef G_INLINE_FUNC */ +]) +AT_CHECK([grep '#.*G_IMPLEMENT_INLINES' config.h], [0], +[#define G_IMPLEMENT_INLINES 1 +]) AT_CLEANUP