autoconf/tests/torture.m4
Akim Demaille b519547b61 AC_CHECK_SIZEOF: Fix a bug, use standard default headers, and
test.

* acgeneral.m4 (AC_CHECK_SIZEOF): Don't over quote $1, some []
were left in the C code, and had the macro fail.
Use AC_INCLUDES_DEFAULT.
* doc/autoconf.texi: Mention default includes.  Explain stdio.h
must always be given.

* tests/atspecific.m4 (TEST_MACRO): Updated the list of
exceptions.
(AT_CHECK_DEFINES): New macro, to check the content of config.h.
* tests/semantics.m4: All the tests are updated to use
AT_CHECK_DEFINES.
Test AC_CHECK_SIZEOF, AC_CHECK_HEADERS, and AC_CHECK_FUNCS.
2000-02-07 17:28:43 +00:00

79 lines
2.5 KiB
Plaintext

# -*- autoconf -*-
cat <<\EOF
Torturing config.status.
## ---------------------------------------------------------------- ##
## This section of tests is trying to make Autoconf produce failing ##
## `configure' scripts, which must not happen. If these tests ever ##
## fail, it is extremely important that you report the failure to ##
## bug-autoconf@gnu.org. ##
## ---------------------------------------------------------------- ##
EOF
dnl The value used as a big value for AC_DEFINE.
dnl Don't use sh active chars here, below it is also used in a sh
dnl assignment.
define(Big_Value,
[This value should be long enough to torture the various limits of sed and other tools used by Autoconf.])
define(DEFINE_Description,
[Define to a long string if your `Autoconf' works properly.])
# AT_DUMMY_VAR(NUMBER)
# --------------------
# Build a name used for AC_SUBST and AC_DEFINE. Put ac_ in it
# so that the check for user name space invasion does not complain
# of the new variables defined.
#
# Note that you should not use the name ac_dummy, because it will be
# turned into ac_uummy during the construction of config.status. Yes,
# this is admittedly a bug, but it would be too hard to fix this.
# There is really no point in AC_DEFINE a var named ac_d.*.
define(AT_DUMMY_VAR,
[ac_Dummy_[]patsubst([000$1], [.*\(...\)$], [\1])])
dnl This call was quite delicate to write because we wanted to produce
dnl the 100 commands at hand. Be very careful if you want to touch
dnl something.
## Require 100 AC_DEFINE and AC_SUBST with a significantly big value.
## This is mostly to check that Autoconf produces portable sed scripts
## in config.status. sed is used to skip the first two lines
## `Generated by...'.
AT_DATA(dummy.in,
[m4_for(AT_Count, 1, 100,
[@AT_DUMMY_VAR(AT_Count)@
])])
AT_TEST_MACRO(config.status under extreme conditions,
[AC_CONFIG_FILES(dummy)
[define]([AC_DEFUBST_VALUE], Big_Value)
dnl The following 4 lines are a transfert from AT_DUMMY_VAR in Autotest
dnl to AC_DUMMY_VAR in Autoconf.
[define]([AC_DUMMY_VAR],
changequote({{, }})dnl
[defn({{AT_DUMMY_VAR}})]dnl
changequote([, ]))
m4_for(AT_Count, 1, 100,
[AC_DEFUBST(AT_Count)
])],
[# Checking that AC_DEFINE worked properly.
AT_DATA(expout,
[m4_for(AT_Count, 1, 100,
[
/* DEFINE_Description */
[#define] AT_DUMMY_VAR(AT_Count) "Big_Value"
])])
AT_CHECK([sed -n -e '3,$ p' config.h], 0, expout)
# Checking that AC_SUBST worked properly.
AT_DATA(expout,
[m4_for(AT_Count, 1, 100,
[Big_Value
])])
])