dnl Copyright © 2020-2021 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 AT_CAPTURE_FILE([config.log])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 [D@@&t@&t@X_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; configure will substitute absolute path if # "command" does not work (e.g., heirloom-sh). expected=$1 val=`$TEST_SHELL -c 'command -v $1'` test x"$val" = x"`pwd`/bin/$1" || expected=`pwd`/bin/$1 TEST_CONFIGURE AT_CHECK_UNQUOTED([cat test], [0], [yes $expected ]) 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]) TEST_SIMPLE_PROGRAM_PROBES([bison])