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.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!
ATF imported into NetBSD-current
Posted by jmmv on Thu, 12 Nov 2007 21:20:00 GMT | Permanent link
As I mentioned yesterday, ATF was hopefully ready to be integrated into NetBSD with the release of the 0.3 version. And it was! As there seem to be no serious problems with it, and as some people were adding pressure to get the thing integrated, I merged ATF into the NetBSD-current source tree today. Or, in other words, ATF will be part of NetBSD 5.0!
This marks a big milestone in the project, because ATF is now really put into use by an important and huge project: The NetBSD Operating System. This will hopefully boost interest in ATF and raise external contributions to either the core framework and/or to the NetBSD-specific tests.
For more details please refer to my official announcement at the tech-userlevel mailing list or to the news item at the NetBSD site.
