Welcome to the ATF project
The Automated Testing Framework (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. It started as a Google Summer of Code 2007 project and is now sponsored by The NetBSD Foundation, Inc. It is distributed under the terms of the TNF license, a very permissive open source license. Learn more!
Recent news 
ATF 0.6 released
Posted by jmmv on Sun, 18 Jan 2009 20:20:00 GMT | Permanent link
After a very long quiet period, I am happy to announce the 0.6 release of ATF. The major goal of this release is to integrate the changes made to the source code by Lukasz Strzygowski as part of his Google Summer of Code 2008 project. Integrating these changes into a formal release is a prerequirement for later integration of his NetBSD-specific work on regression tests into the NetBSD source tree.
The major changes in this release are:
-
Make atf-exec be able to kill its child process after a certain period of time; this is controlled through the new -t option.
-
Change atf-sh to use atf-exec's -t option to control the test case's timeouts, instead of doing it internally. Same behavior as before, but noticeably faster.
-
atf-exec's -g option and atf-killpg are gone due to the previous change.
-
Added the atf-check(1) tool, a program that executes a given command and checks its exit code against a known value and allows the management of stdout and stderr in multiple ways. This replaces the previous atf_check function in the atf-sh library and exposes this functionality to both atf-c and atf-c++.
-
Added the ATF_REQUIRE family of macros to the C interface. These help in checking for fatal test conditions. The old ATF_CHECK macros now perform non-fatal checks only. I.e. by using ATF_CHECK, the test case can now continue its execution and the failures will not be reported until the end of the whole run.
-
Extended the amount of ATF_CHECK_* C macros with new ones to provide more features to the developer. These also have their corresponding counterparts in the ATF_REQUIRE_* family. The new macros (listing the suffixes only) are: _EQ (replaces _EQUAL), _EQ_MSG, _STREQ and _STREQ_MSG.
The checksums for atf-0.6.tar.gz are:
-
MD5: 55cf06177889dbe1891c766dc5bf5b94
-
SHA1: 311b277477bae7dab8e634f7c17cce25a8664012
-
SHA512: 4aa980c5 545e606d 1b660f05 a8eae399 12830606 9703ed09 5f6d30a3 a963af77 ea53a8a7 daada27c 8e77f13b a385ce28 70472791 ef2bf81f f9385fda 800525db
Go to the downloads page to get it!
ATF 0.5 released
Posted by jmmv on Thu, 01 May 2008 17:00:00 GMT | Permanent link
I am very pleased to announce the availability of ATF's fifth public release, 0.5, which is probably the one with the most code changes so far. The main goal of this release is to provide a C-only binding to write test cases, completely freeing the developers of the use of C++. This new C library weights at around 7000 lines and the C++ library has lost around 1000 due to the fact that it now reuses code in the C library. Another important change of this release is the relicensing of the complete code base under a 2-clause BSD license.
The major changes in this release are:
-
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). Read the new license for further details.
-
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.
The checksums for atf-0.5.tar.gz are:
-
MD5: b1d078b716e344bcf65f735cd74dc5d8
-
SHA1: 63cb8541608518cdb214a10e71228d3e8c8af514
-
SHA512: f78cce89 bfa34810 9e4bbd5c 20ea1930 8f8e3c4a 835b22cc 60e0e300 d243f98a ab4180ac 28673767 f34bbddf 1ad36acc 7569f483 0773d391 c5a38df4 1d6883a2
Go to the downloads page to get it!
C-only library for test programs
Posted by jmmv on Mon, 18 Feb 2008 11:15:00 GMT | Permanent link
The branch org.NetBSD.atf.src.c has just hit the public repository. This contains a preliminary implementation of a C-only library for test programs. It will allow developers using ATF in their projects to restrict their test programs to the C language without having to use C++ at all, which is a highly desired feature in, for example, the NetBSD source tree.
The main focus of 0.5 will be the stabilization of this branch and its integration into mainline, assuming there is no important bug fix to roll off before this happens.
See some more details in this atf-devel post. Feel free to raise your comments there.
ATF 0.4 released
Posted by jmmv on Thu, 04 Feb 2008 21:00:00 GMT | Permanent link
I am very pleased to announce the availability of ATF's fourth public release, 0.4. The initial main goal of this release was to provide some developer-specific documentation, but once I attacked the implementation of the features planned in the roadmap, things got more complex. In the end, this release brings several new features and lots of portability fixes.
The major changes in this release are:
-
Added two new manual pages, atf-c++-api and atf-sh-api, describing the C++ and POSIX shell interfaces used to write test programs.
-
Added a pkg-config file, useful to get the flags to build against the C++ library or to easily detect the presence of ATF.
-
Added a way for test cases to require a specific architecture and/or machine type through the new require.arch and require.machine meta-data properties, respectively.
-
Added the timeout property to test cases, useful to set an upper-bound limit for the test's run time and thus prevent global test program stalls due to the test case's misbehavior.
-
Added the atf-exec(1) internal utility, used to execute a command after changing the process group it belongs to.
-
Added the atf-killpg(1) internal utility, used to kill process groups.
-
Multiple portability fixes. Of special interest, full support for SunOS (Solaris Express Developer Edition 2007/09) using the Sun Studio 12 C++ compiler.
-
Fixed a serious bug that prevented atf-run(1) from working at all under Fedora 8 x86_64. Due to the nature of the bug, other platforms were likely affected too.
The checksums for atf-0.4.tar.gz are:
-
MD5: df5b8794577cf962ccb7a0434644c9a3
-
SHA1: dce4885a2f2d55d73d5f248fe482d5ac3101ce86
-
SHA512: 93bb92bb 50784092 5ba10613 240360e6 eef605c9 e1eafff7 c0bcdc4b b27c27cd b272d479 cedf3bee b37d7550 bcb58ab5 c1fdb893 04492277 9bec29c8 4c9659ce
Go to the downloads page to get it!
