(autoconf.info.gz) Making testsuite Scripts
Info Catalog
(autoconf.info.gz) testsuite Invocation
(autoconf.info.gz) Using Autotest
Making `testsuite' Scripts
==========================
For putting Autotest into movement, you need some configuration and
Makefile machinery. We recommend, at least if your package uses deep or
shallow hierarchies, that you use `tests/' as the name of the directory
holding all your tests and their `Makefile'. Here is a check list of
things to do.
- Make sure to create the file `package.m4', which defines the
identity of the package. It must define `AT_PACKAGE_STRING', the
full signature of the package, and `AT_PACKAGE_BUGREPORT', the
address to which bug reports should be sent. For sake of
completeness, we suggest that you also define `AT_PACKAGE_NAME',
`AT_PACKAGE_TARNAME', and `AT_PACKAGE_VERSION'.
Initializing configure, for a description of these variables. We
suggest the following Makefile excerpt:
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
{ \
echo '# Signature of the current package.'; \
echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \
echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \
echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
} >$(srcdir)/package.m4
Be sure to distribute `package.m4' and to put it into the source
hierarchy: the test suite ought to be shipped!
- Invoke `AC_CONFIG_TESTDIR'.
- Macro: AC_CONFIG_TESTDIR (DIRECTORY, [TEST-PATH = `DIRECTORY'])
An Autotest test suite is to be configured in DIRECTORY. This
macro requires the instantiation of `DIRECTORY/atconfig' from
`DIRECTORY/atconfig.in', and sets the default `AUTOTEST_PATH'
to TEST-PATH ( testsuite Invocation).
- Still within `configure.ac', as appropriate, ensure that some
`AC_CONFIG_FILES' command includes substitution for
`tests/atlocal'.
- The `tests/Makefile.in' should be modified so the validation in
your package is triggered by `make check'. An example is provided
below.
With Automake, here is a minimal example about how to link `make
check' with a validation suite.
EXTRA_DIST = testsuite.at testsuite
TESTSUITE = $(srcdir)/testsuite
check-local: atconfig atlocal $(TESTSUITE)
$(SHELL) $(TESTSUITE)
AUTOTEST = $(AUTOM4TE) --language=autotest
$(TESTSUITE): $(srcdir)/testsuite.at
$(AUTOTEST) -I $(srcdir) $@.at -o $@.tmp
mv $@.tmp $@
You might want to list explicitly the dependencies, i.e., the list of
the files `testsuite.at' includes.
With strict Autoconf, you might need to add lines inspired from the
following:
subdir = tests
atconfig: $(top_builddir)/config.status
cd $(top_builddir) && \
$(SHELL) ./config.status $(subdir)/$@
atlocal: $(srcdir)/atlocal.in $(top_builddir)/config.status
cd $(top_builddir) && \
$(SHELL) ./config.status $(subdir)/$@
and manage to have `atconfig.in' and `$(EXTRA_DIST)' distributed.
Info Catalog
(autoconf.info.gz) testsuite Invocation
(autoconf.info.gz) Using Autotest
automatically generated byinfo2html