]> git.draconx.ca Git - dxcommon.git/blob - tests/programs.at
Add Bison-related configure tests.
[dxcommon.git] / tests / programs.at
1 dnl Copyright © 2020-2021 Nick Bowler
2 dnl
3 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
4 dnl This is free software: you are free to do what the fuck you want to.
5 dnl There is NO WARRANTY, to the extent permitted by law.
6
7 AT_BANNER([Program tests])
8
9 m4_define([TEST_SIMPLE_PROGRAM_PROBES],
10   [TEST_SIMPLE_PROGRAM_PROBES_([$1], m4_toupper($1))])
11 m4_define([TEST_SIMPLE_PROGRAM_PROBES_],
12 [AT_SETUP([$1 probes])
13 AT_KEYWORDS([DX_PROG_$2 program])dnl
14 AT_CAPTURE_FILE([config.log])dnl
15
16 mkdir bin
17 cp -P "$srcdir/t/$1.sh" bin/$1
18
19 AT_DATA([test.in],
20 [[@HAVE_$2@
21 @$2@
22 ]])
23
24 # Unversioned tests
25 TEST_CONFIGURE_AC([[DX_PROG_$2([], [HAVE_$2=yes], [HAVE_$2=no])
26 AC_SUBST([$2])
27 AC_SUBST([HAVE_$2])
28
29 set x conftest*; shift
30 if test -f $[]1; then
31   AC_MSG_ERROR([$[]1 left behind by [D@@&t@&t@X_PROG_$2]])
32 fi
33
34 AC_CONFIG_FILES([test])
35 ]])
36 TEST_AUTORECONF
37
38 # Check the search via path lookup
39 save_PATH=$PATH
40 PATH=$PWD/bin${PATH:+":$PATH"}
41
42 # Sanity test on PATH lookup
43 AT_CHECK([test x"`command -v $1`" = x"$PWD/bin/$1" || exit 99 #''])
44
45 TEST_CONFIGURE
46 AT_CHECK_UNQUOTED([cat test], [0], [yes
47 $1
48 ])
49 PATH=$save_PATH
50
51 # Check the search via user override
52 TEST_CONFIGURE([$2="$srcdir/t/$1.sh"])
53 AT_CHECK_UNQUOTED([cat test], [0], [yes
54 $srcdir/t/$1.sh
55 ])
56
57 # Check that a bogus program doesn't come back as valid.
58 TEST_CONFIGURE([$2=true])
59 AT_CHECK_UNQUOTED([cat test], [0], [no
60 true
61 ])
62
63 # min-version tests
64 mv configure.ac configure.old
65 sed ['s/\(DX_PROG_$2(\)\[\]/\1[2.1.3]/'] configure.old >configure.ac
66 TEST_AUTORECONF
67
68 TEST_CONFIGURE([FAKE_$2_VERSION=2.0.0 $2="$srcdir/t/$1.sh"])
69 AT_CHECK_UNQUOTED([cat test], [0], [no
70 $srcdir/t/$1.sh
71 ])
72
73 TEST_CONFIGURE([FAKE_$2_VERSION=3.0.0 $2="$srcdir/t/$1.sh"])
74 AT_CHECK_UNQUOTED([cat test], [0], [yes
75 $srcdir/t/$1.sh
76 ])
77
78 TEST_CONFIGURE([FAKE_$2_VERSION=2.5.0 $2="$srcdir/t/$1.sh"])
79 AT_CHECK_UNQUOTED([cat test], [0], [yes
80 $srcdir/t/$1.sh
81 ])
82
83 TEST_CONFIGURE([FAKE_$2_VERSION=2.1.2 $2="$srcdir/t/$1.sh"])
84 AT_CHECK_UNQUOTED([cat test], [0], [no
85 $srcdir/t/$1.sh
86 ])
87
88 TEST_CONFIGURE([FAKE_$2_VERSION=2.1.3 $2="$srcdir/t/$1.sh"])
89 AT_CHECK_UNQUOTED([cat test], [0], [yes
90 $srcdir/t/$1.sh
91 ])
92
93 AT_CLEANUP
94 ])
95
96 TEST_SIMPLE_PROGRAM_PROBES([gob2])
97 TEST_SIMPLE_PROGRAM_PROBES([flex])
98 TEST_SIMPLE_PROGRAM_PROBES([bison])