ffe8204c6b
Changes in this release: * Clauses 3 and 4 of the BSD license used by the project were dropped. All the code is now under a 2-clause BSD license compatible with the GNU General Public License (GPL). * Added a C-only binding so that binary test programs do not need to be tied to C++ at all. This binding is now known as the atf-c library. * Renamed the C++ binding to atf-c++ for consistency with the new atf-c. * Renamed the POSIX shell binding to atf-sh for consistency with the new atf-c and atf-c++. * Added a -w flag to test programs through which it is possible to specify the work directory to be used. This was possible in prior releases by defining the workdir configuration variable (-v workdir=...), but was a conceptually incorrect mechanism. * Test programs now preserve the execution order of test cases when they are given in the command line. Even those mentioned more than once are executed multiple times to comply with the user's requests.
176 lines
5.5 KiB
Plaintext
176 lines
5.5 KiB
Plaintext
Automated Testing Framework (atf)
|
|
The NetBSD Foundation, Inc.
|
|
---------------------------------------------------------------------------
|
|
|
|
|
|
Introduction
|
|
============
|
|
|
|
ATF uses the GNU Automake, GNU Autoconf and GNU Libtool utilities as its
|
|
build system. These are used only when compiling the application from the
|
|
source code package. If you want to install ATF from a binary package, you
|
|
do not need to read this document.
|
|
|
|
For the impatient:
|
|
|
|
$ ./configure
|
|
$ make
|
|
$ make check
|
|
Gain root privileges
|
|
# make install
|
|
Drop root privileges
|
|
$ make installcheck
|
|
|
|
Or alternatively, install as a regular user into your home directory:
|
|
|
|
$ ./configure --prefix ~/local
|
|
$ make
|
|
$ make check
|
|
$ make install
|
|
$ make installcheck
|
|
|
|
|
|
Dependencies
|
|
============
|
|
|
|
To build and use ATF successfully you need:
|
|
|
|
* A standards-compliant C/C++ complier. For example, GNU GCC 2.95 will not
|
|
work.
|
|
* A POSIX shell interpreter.
|
|
* A make(1) utility.
|
|
|
|
If you are building ATF from the code on the repository, you will also need
|
|
the following tools. The versions listed here are the ones used to build
|
|
the files bundled in the last formal release, but these are not strictly
|
|
required. Newer ones will most likely work and, maybe, some slightly older
|
|
ones:
|
|
|
|
* GNU autoconf 2.61
|
|
* GNU automake 1.10.1
|
|
* GNU libtool 1.5.24 (1.1220.2.455 2007/06/24 02:13:29)
|
|
|
|
|
|
Regenerating the build system
|
|
=============================
|
|
|
|
If you are building ATF from code extracted from the repository, you must
|
|
first regenerate the files used by the build system. You will also need to
|
|
do this if you modify one of configure.ac or Makefile.am. To do this,
|
|
simply run:
|
|
|
|
$ autoreconf -is
|
|
|
|
For formal releases, no extra steps are needed.
|
|
|
|
|
|
General build procedure
|
|
=======================
|
|
|
|
To build and install the source package, you must follow these steps:
|
|
|
|
1. Configure the sources to adapt to your operating system. This is done
|
|
using the 'configure' script located on the sources' top directory, and
|
|
it is usually invoked without arguments unless you want to change the
|
|
installation prefix. More details on this procedure are given on a
|
|
later section.
|
|
|
|
2. Build the sources to generate the binaries and scripts. Simply run
|
|
'make' on the sources' top directory after configuring them. No
|
|
problems should arise.
|
|
|
|
3. Check that the programs built in the previous step work before
|
|
installing them. Run 'make check' for this. Any serious problems will
|
|
pop up here. (Be aware that on, some systems, GNU Libtool will break
|
|
these checks. If you get some failures, try reconfiguring the project
|
|
providing the '--disable-fast-install' flag to 'configure' and then
|
|
rebuild and recheck.
|
|
|
|
4. Install the program by running 'make install'. You may need to become
|
|
root to issue this step.
|
|
|
|
5. Issue any manual installation steps that may be required. These are
|
|
described later in their own section.
|
|
|
|
6. Check that the installed programs work by running 'make installcheck'.
|
|
You do not need to be root to do this, even though some checks will not
|
|
be run otherwise.
|
|
|
|
|
|
Configuration flags
|
|
===================
|
|
|
|
The most common, standard flags given to 'configure' are:
|
|
|
|
* Flag: --prefix=directory
|
|
Possible values: Any path
|
|
Default: /usr/local
|
|
|
|
Specifies where the program (binaries and all associated files) will be
|
|
installed.
|
|
|
|
* Flag: --sysconfdir=directory
|
|
Possible values: Any path
|
|
Default: /usr/local/etc
|
|
|
|
Specifies where the installed programs will look for configuration files.
|
|
'/atf' will be appended to the given path unless ATF_CONFSUBDIR is
|
|
redefined as explained later on.
|
|
|
|
* Flag: --help
|
|
|
|
Shows information about all available flags and exits immediately,
|
|
without running any configuration tasks.
|
|
|
|
The following flags are specific to ATF's 'configure' script:
|
|
|
|
* Variable: ATF_CONFSUBDIR
|
|
Possible values: empty, a relative path.
|
|
Default: atf.
|
|
|
|
Specifies the subdirectory of the configuration directory (given by the
|
|
--sysconfdir argument) under which ATF will search for its configuration
|
|
files.
|
|
|
|
* Variable: ATF_WORKDIR
|
|
Possible values: empty, an absolute path.
|
|
Default: /tmp or /var/tmp, depending on availability.
|
|
|
|
Specifies the directory that ATF will use to place its temporary files
|
|
and work directories for test cases. This is just a default and can
|
|
be overriden at run time.
|
|
|
|
* Flag: --enable-developer
|
|
Possible values: yes, no
|
|
Default: Depends on the version number. Stable versions define this
|
|
to 'no' while all others have it set to 'yes'.
|
|
|
|
Enables several features useful for development, such as the inclusion
|
|
of debugging symbols in all objects or the enabling of warnings during
|
|
compilation.
|
|
|
|
* Flag: --enable-unstable-shared
|
|
Possible values: yes, no
|
|
Default: no.
|
|
|
|
Forces the building of shared libraries in addition to static ones.
|
|
The build of shared libraries is currently disabled because their ABIs
|
|
and APIs are unstable and subject to change. This flag is provided for
|
|
development purposes only and will be removed once the libraries are
|
|
stable enough.
|
|
|
|
|
|
Post-installation steps
|
|
=======================
|
|
|
|
After installing ATF, you have to register the DTDs it provides into the
|
|
system-wide XML catalog. See the comments at the top of the files in
|
|
${datadir}/share/xml/atf to see the correct public identifiers. This
|
|
directory will typically be /usr/local/share/xml/atf or /usr/share/xml/atf.
|
|
Failure to do so will lead to further errors when processing the XML
|
|
files generated by atf-report.
|
|
|
|
|
|
---------------------------------------------------------------------------
|
|
End of document
|