Copyright (C) 2000-2012 |
GNU Info (autoconf.info)Making testsuite ScriptsMaking `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 |