autoconf/tests/base.at
Akim Demaille a9e30cc83a Move Autotest on top of M4sh.
* tests/atgeneral.m4: Import M4sh.
Adjust the differences on the names of the builtins (define etc.).
(AT_CASE): Remove, use m4_case.
(AT_SETUP): Don't use `AT_group_description', `$1' is OK.
* tests/atspecific.m4 (m4_for, m4_foreach): Remove, use those of
M4sugar.
* tests/m4sugar.at: Strengthen the quotation and adjust to the new
macro names.
* tests/m4sh.at: Ditto.
* tests/torture.at: Ditto.
* tests/base.at: Ditto.
* m4sh.m4: Import M4sugar.
* autoconf.m4: Don't import M4sugar, M4sh does.
2000-11-23 09:45:48 +00:00

167 lines
3.1 KiB
Plaintext

# -*- autoconf -*-
cat <<EOF
Autoconf base layer.
EOF
## ------------------------------- ##
## AC_REQUIRE: topological sort.. ##
## ------------------------------- ##
# Check that dependencies are always properly honored.
AT_SETUP([AC_REQUIRE: topological sort])
AT_DATA(configure.in,
[[define([REQUIRE_AND_CHECK],
[AC_REQUIRE([$1])dnl
test -z "$m4_translit([$1], [A-Z], [a-z])" && AS_EXIT(1)])
AC_DEFUN([TEST1],
[REQUIRE_AND_CHECK([TEST2a])
REQUIRE_AND_CHECK([TEST2b])
test1=set])
AC_DEFUN([TEST2a],
[test2a=set])
AC_DEFUN([TEST2b],
[REQUIRE_AND_CHECK([TEST3])
test2b=set])
AC_DEFUN([TEST3],
[REQUIRE_AND_CHECK([TEST2a])
test3=set])
AC_PLAIN_SCRIPT
TEST1
test -z "$test1" &&
AC_MSG_ERROR([\$test1 is empty])
AS_EXIT(0)
]])
AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir], 0, [], [])
AT_CHECK([./configure], 0)
AT_CLEANUP(configure)
## ----------------------------------------------- ##
## AC_REQUIRE and AC_DEFUN_ONCE: Require, expand. ##
## ----------------------------------------------- ##
AT_SETUP([AC_REQUIRE & AC_DEFUN_ONCE: Require, expand])
AT_DATA([configure.in],
[[AC_DEFUN([TEST],
[AC_REQUIRE([MULTI_TEST])
AC_REQUIRE([SINGLE_TEST])])
AC_DEFUN([MULTI_TEST],
[multi_test=".$multi_test"])
AC_DEFUN_ONCE([SINGLE_TEST],
[single_test=".$single_test"])
AC_PLAIN_SCRIPT
TEST
TEST
MULTI_TEST
MULTI_TEST
SINGLE_TEST
SINGLE_TEST
case $multi_test:$single_test in
...:. ) AS_EXIT(0);;
...:* ) AC_MSG_ERROR([DEFUN_ONCE is broken]);;
*:. ) AC_MSG_ERROR([DEFUN is broken (Wow, congrats!)]);;
esac
]])
AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir], 0, [],
[configure.in:16: warning: SINGLE_TEST invoked multiple times
configure.in:17: warning: SINGLE_TEST invoked multiple times
])
AT_CHECK([./configure], 0)
AT_CLEANUP(configure)
## ----------------------------------------------- ##
## AC_REQUIRE and AC_DEFUN_ONCE: Expand, require. ##
## ----------------------------------------------- ##
AT_SETUP([AC_REQUIRE & AC_DEFUN_ONCE: Expand, require])
AT_DATA([configure.in],
[[AC_DEFUN([TEST],
[AC_REQUIRE([MULTI_TEST])
AC_REQUIRE([SINGLE_TEST])])
AC_DEFUN([MULTI_TEST],
[multi_test=".$multi_test"])
AC_DEFUN_ONCE([SINGLE_TEST],
[single_test=".$single_test"])
AC_PLAIN_SCRIPT
MULTI_TEST
MULTI_TEST
SINGLE_TEST
SINGLE_TEST
TEST
TEST
case $multi_test:$single_test in
..:. ) AS_EXIT(0);;
..:* ) AC_MSG_ERROR([DEFUN_ONCE is broken]);;
*:. ) AC_MSG_ERROR([DEFUN is broken (Wow, congrats!)]);;
* ) AC_MSG_ERROR([received `$multi_test:$single_test']);;
esac
]])
AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir], 0, [],
[configure.in:15: warning: SINGLE_TEST invoked multiple times
])
AT_CHECK([./configure], 0)
AT_CLEANUP(configure)
## ------------------------- ##
## AC_REQUIRE & AC_PROVIDE. ##
## ------------------------- ##
AT_SETUP([AC_REQUIRE & AC_PROVIDE])
AT_DATA([configure.in],
[[AC_DEFUN([TEST],
[AC_REQUIRE([INNER_TEST])])
AC_DEFUN([INNER_TEST],
[inner_test=".$inner_test"])
AC_PLAIN_SCRIPT
AC_PROVIDE([INNER_TEST])
TEST
case $inner_test in
"" ) AS_EXIT(0);;
* ) AC_MSG_ERROR([received `$inner_test']);;
esac
]])
AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir], 0)
AT_CHECK([./configure], 0)
AT_CLEANUP(configure)