]> git.draconx.ca Git - dxcommon.git/blobdiff - tests/programs.at
Add flex detection macro.
[dxcommon.git] / tests / programs.at
index 0228ac3706f2460ead53263b5a438b5c53bdbd5c..b99fa828f969736722d2d5596ccdff516bbb3f2a 100644 (file)
@@ -6,24 +6,28 @@ dnl There is NO WARRANTY, to the extent permitted by law.
 
 AT_BANNER([Program tests])
 
-AT_SETUP([gob2 probes])
+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/gob2.sh" bin
+cp -P "$srcdir/t/$1.sh" bin/$1
 
 AT_DATA([test.in],
-[[@HAVE_GOB2@
-@GOB2@
+[[@HAVE_$2@
+@$2@
 ]])
 
 # Unversioned tests
-TEST_CONFIGURE_AC([[DX_PROG_GOB2([], [HAVE_GOB2=yes], [HAVE_GOB2=no])
-AC_SUBST([GOB2])
-AC_SUBST([HAVE_GOB2])
+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([conftest* left behind by [DX_PROG_GOB2]])
+  AC_MSG_ERROR([$[]1 left behind by [DX_PROG_$2]])
 fi
 
 AC_CONFIG_FILES([test])
@@ -33,58 +37,60 @@ 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
-gob2
+$1
 ])
 PATH=$save_PATH
 
 # Check the search via user override
-TEST_CONFIGURE([GOB2="$srcdir/t/gob2.sh"])
+TEST_CONFIGURE([$2="$srcdir/t/$1.sh"])
 AT_CHECK_UNQUOTED([cat test], [0], [yes
-$srcdir/t/gob2.sh
+$srcdir/t/$1.sh
 ])
 
 # Check that a bogus program doesn't come back as valid.
-TEST_CONFIGURE([GOB2=true])
+TEST_CONFIGURE([$2=true])
 AT_CHECK_UNQUOTED([cat test], [0], [no
 true
 ])
 
 # min-version tests
 mv configure.ac configure.old
-[sed 's/DX_PROG_GOB2(\[\]/DX_PROG_GOB2([2.1.3]/' configure.old >configure.ac]
+sed ['s/\(DX_PROG_$2(\)\[\]/\1[2.1.3]/'] configure.old >configure.ac
 TEST_AUTORECONF
 
-FAKE_GOB2_VERSION=2.0.0
-export FAKE_GOB2_VERSION
-TEST_CONFIGURE([GOB2="$srcdir/t/gob2.sh"])
+TEST_CONFIGURE([FAKE_$2_VERSION=2.0.0 $2="$srcdir/t/$1.sh"])
 AT_CHECK_UNQUOTED([cat test], [0], [no
-$srcdir/t/gob2.sh
+$srcdir/t/$1.sh
 ])
 
-FAKE_GOB2_VERSION=3.0.0
-TEST_CONFIGURE([GOB2="$srcdir/t/gob2.sh"])
+TEST_CONFIGURE([FAKE_$2_VERSION=3.0.0 $2="$srcdir/t/$1.sh"])
 AT_CHECK_UNQUOTED([cat test], [0], [yes
-$srcdir/t/gob2.sh
+$srcdir/t/$1.sh
 ])
 
-FAKE_GOB2_VERSION=2.5.0
-TEST_CONFIGURE([GOB2="$srcdir/t/gob2.sh"])
+TEST_CONFIGURE([FAKE_$2_VERSION=2.5.0 $2="$srcdir/t/$1.sh"])
 AT_CHECK_UNQUOTED([cat test], [0], [yes
-$srcdir/t/gob2.sh
+$srcdir/t/$1.sh
 ])
 
-FAKE_GOB2_VERSION=2.1.2
-TEST_CONFIGURE([GOB2="$srcdir/t/gob2.sh"])
+TEST_CONFIGURE([FAKE_$2_VERSION=2.1.2 $2="$srcdir/t/$1.sh"])
 AT_CHECK_UNQUOTED([cat test], [0], [no
-$srcdir/t/gob2.sh
+$srcdir/t/$1.sh
 ])
 
-FAKE_GOB2_VERSION=2.1.3
-TEST_CONFIGURE([GOB2="$srcdir/t/gob2.sh"])
+TEST_CONFIGURE([FAKE_$2_VERSION=2.1.3 $2="$srcdir/t/$1.sh"])
 AT_CHECK_UNQUOTED([cat test], [0], [yes
-$srcdir/t/gob2.sh
+$srcdir/t/$1.sh
 ])
 
 AT_CLEANUP
+])
+
+TEST_SIMPLE_PROGRAM_PROBES([gob2])
+TEST_SIMPLE_PROGRAM_PROBES([flex])