ATF is a collection of libraries and utilities designed to ease unattended application testing in the hands of developers and end users of a specific piece of software. Tests can currently be written in C/C++ or POSIX shell and, contrary to other testing frameworks, ATF tests are installed into the system alongside any other application files. This allows the end user to easily verify that the software behaves correctly on her system. Furthermore, the results of the test suites can be collected into nicely-formatted reports to simplify their visualization and analysis.
| Tags | Software Development Quality Assurance Testing |
|---|---|
| Licenses | BSD Original |
| Operating Systems | Mac OS X POSIX Unix |
| Implementation | C++ Unix Shell |
Recent releases


Changes: The atf-check tool has been added, which executes a given command and checks its exit code and output against pre-specified values. This is mostly used internally by the shell interface. A new set of macros, ATF_REQUIRE_*, has been added to the C interface to signal fatal errors, while the old ones (ATF_CHECK_*) now only signal non-fatal errors. There are several other internal changes to make test case timeout control more robust, and multiple optimizations all around the code (especially in the shell code).


Changes: The code has been relicensed under a 2-clause BSD license. A new C-only binding (atf-c) has been added so that developers do not need to use C++ at all to write test cases. The C++ binding has been renamed to atf-c++, and the POSIX shell binding to atf-sh for consistency. Test programs now support a -w flag to indicate the work directory they have to use. Test programs now preserve the order of test cases when stated by the user on the command line.


Changes: This release adds preliminary documentation on the C++ and shell interfaces to write tests, mainly directed to developers wishing to adopt ATF. It adds a way to specify required architectures and machines for given tests through the require.arch and require.machine properties; if the platform running the tests does not fulfill the requirements, the tests are simply skipped. It adds the ability to limit the maximum time a test case can last through the timeout property, killing tests that get stalled. There are many portability fixes, especially to SunOS, and small improvements all around.


Changes: This release adds XML output support for atf-report. atf-run has been changed to include generic system information in the reports it generates, which is useful for later inspection of test logs on remote machines. The 'isolated' property has been removed from test cases, as it has become useless and problematic. atf-report's CSV output format has been extended to include details about test programs. ATF tests have been fixed to not require atf-compile where it is not strictly necessary. There are many general cleanups.


Changes: Test cases now get a known umask on entry. atf-run and atf-report now detect many bogus test programs and correctly report them. All the data formats have been reviewed and stabilized. The atf-version tool was added to show information about the installed version of ATF. Test cases can now define an optional cleanup routine. Test programs have been improved to capture some termination signals in order to be able to clean up temporary files before exiting. There have been multiple fixes and improvements all around.