dnl Copyright © 2020 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. dnl There is NO WARRANTY, to the extent permitted by law. AT_BANNER([Program tests]) m4_define([TEST_SIMPLE_PROGRAM_PROBES], [TEST_SIMPLE_PROGRAM_PROBES_([$1], m4_toupper($1))]) m4_define([TEST_SIMPLE_PROGRAM_PROBES_], [AT_SETUP([$1 probes]) AT_KEYWORDS([DX_PROG_$2 program])dnl mkdir bin cp -P "$srcdir/t/$1.sh" bin/$1 AT_DATA([test.in], [[@HAVE_$2@ @$2@ ]]) # Unversioned tests TEST_CONFIGURE_AC([[DX_PROG_$2([], [HAVE_$2=yes], [HAVE_$2=no]) AC_SUBST([$2]) AC_SUBST([HAVE_$2]) set x conftest*; shift if test -f $[]1; then AC_MSG_ERROR([$[]1 left behind by [DX_PROG_$2]]) fi AC_CONFIG_FILES([test]) ]]) TEST_AUTORECONF # Check the search via path lookup save_PATH=$PATH PATH=$PWD/bin${PATH:+":$PATH"} # Sanity test on PATH lookup AT_CHECK([test x"`command -v $1`" = x"$PWD/bin/$1" || exit 99 #'']) TEST_CONFIGURE AT_CHECK_UNQUOTED([cat test], [0], [yes $1 ]) PATH=$save_PATH # Check the search via user override TEST_CONFIGURE([$2="$srcdir/t/$1.sh"]) AT_CHECK_UNQUOTED([cat test], [0], [yes $srcdir/t/$1.sh ]) # Check that a bogus program doesn't come back as valid. TEST_CONFIGURE([$2=true]) AT_CHECK_UNQUOTED([cat test], [0], [no true ]) # min-version tests mv configure.ac configure.old sed ['s/\(DX_PROG_$2(\)\[\]/\1[2.1.3]/'] configure.old >configure.ac TEST_AUTORECONF TEST_CONFIGURE([FAKE_$2_VERSION=2.0.0 $2="$srcdir/t/$1.sh"]) AT_CHECK_UNQUOTED([cat test], [0], [no $srcdir/t/$1.sh ]) TEST_CONFIGURE([FAKE_$2_VERSION=3.0.0 $2="$srcdir/t/$1.sh"]) AT_CHECK_UNQUOTED([cat test], [0], [yes $srcdir/t/$1.sh ]) TEST_CONFIGURE([FAKE_$2_VERSION=2.5.0 $2="$srcdir/t/$1.sh"]) AT_CHECK_UNQUOTED([cat test], [0], [yes $srcdir/t/$1.sh ]) TEST_CONFIGURE([FAKE_$2_VERSION=2.1.2 $2="$srcdir/t/$1.sh"]) AT_CHECK_UNQUOTED([cat test], [0], [no $srcdir/t/$1.sh ]) TEST_CONFIGURE([FAKE_$2_VERSION=2.1.3 $2="$srcdir/t/$1.sh"]) AT_CHECK_UNQUOTED([cat test], [0], [yes $srcdir/t/$1.sh ]) AT_CLEANUP ]) TEST_SIMPLE_PROGRAM_PROBES([gob2]) TEST_SIMPLE_PROGRAM_PROBES([flex])