GNU Info

Info Node: (autoconf.info)Making testsuite Scripts

(autoconf.info)Making testsuite Scripts


Prev: testsuite Invocation Up: Using Autotest
Enter node , (file) or (file)node

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'.  Note:
     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!

   - Use the `AT_CONFIG' macro from within file `configure.ac'.  This
     macro accepts one argument, which is the directory, relative to the
     test directory, where the executables are prepared.

   - Still within `configure.ac', ensure that some `AC_CONFIG_FILES'
     command includes substitution for `tests/atconfig' and also, as
     appropriate, `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.


automatically generated by info2www version 1.2.2.9