[NetBSD logo]    &    [Google logo]

NetBSD-SoC: Automated Testing Framework

As of August 20th, 2007, ATF 0.1 was published to coincide with the end of the Gogle Summer of Code 2007 project. This page will not be updated any more, but will be kept for historical purposes. Please see ATF's official web site for more details and also my blog.

Note that ATF is not yet merged into NetBSD. However, the official page contains pointers to up-to-date patches to make this happen. Those will be applied to the tree once ATF is stabilized from an API/ABI point of view.

What is it?

This main goal of this project is to develop an automated testing framework for the NetBSD operating system which allows any developer or end user to easily see if the system behaves to its specifications.

Some of its features will be:


Status reports will be published on my blog, The Julipedia; you can subscribe to it through either the Atom feed or the RSS feed. I will attempt to post weekly reports, but posts may appear more frequently. Note that I will read any answer you make to the posts and will try to reply to them as soon as possible.

For the record, here are direct links to the relevant posts:

Important dates:

How to get it

atf is currently hosted on the mtn-host.prjek.net public monotone server. This means that you need to install the monotone version control system in order to fetch the atf source code. You can do this by simply installing the devel/monotone package if you are using pkgsrc. You can also browse the source code online and download tarballs from specific revisions.

The project is currently composed of two branches:

To get started, create a database to store the above two branches. Note that you must use a single database; otherwise the atf-merge.sh script will not work. Simply do:

$ mtn --db=atf.mtn db init

Then, pull the above two branches from the server. This is the only step that requires connection to the network:

$ mtn --db=atf.mtn pull atf.mtn-host.prjek.net "org.NetBSD.*atf*"

You can now proceed to extract (checkout) a fresh source tree from any of the two branches:

$ mtn --db=atf.mtn checkout --branch=org.NetBSD.atf.src atf
$ mtn --db=atf.mtn checkout --branch=org.NetBSD.src.atf-merge atf-merge

At last, whenever you want to synchronize your local trees with what is in the server, pull the new branches and then run an update on each tree. Note that, as both trees share the same database, pulling from within one of them will effectively pull the two branches:

$ cd atf
$ mtn pull
$ mtn update
$ cd ../atf-merge
$ mtn update


You do not have to trust the public server to trust the code you received. You only have to trust my monotone public key, which signs all revisions in the database:

Key identifier: jmmv@NetBSD.org
Key fingerprint: 9c8ed88a0605d2f8da2251d24df4829ec2a75bba

Public key:

[pubkey jmmv@NetBSD.org]

To verify the above information with what you have on your database, use:

$ mtn --db=atf.mtn list keys
$ mtn --db=atf.mtn pubkey jmmv@NetBSD.org

You can then trust all revisions signed by me, something that appears in the logs (run mtn log) as the Author field.


Mandatory (must-have) components:

Optional (would-be-nice) components:


Check this document for a lot more details on this project.

Technical Details

NetBSD currently has a set of regression tests under src/regress. There is no way to easily execute them all because each of them has its own execution semantics.
SourceForge.net Logo
Julio M. Merino Vidal <jmmv84@gmail.com>
$Id: index.html,v 1.22 2007/08/20 19:52:05 jmmv Exp $