1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD Simplified DocBook XML V1.1//EN"
3 "http://docbook.org/xml/simple/1.1/sdocbook.dtd">
8 <title>Major changes in ATF releases</title>
11 <firstname>Julio</firstname>
12 <surname>Merino</surname>
14 <orgname>The NetBSD Foundation</orgname>
19 <section id="atf-0-7">
21 <title>Changes in version 0.7</title>
23 <para>Experimental version released on December 22nd, 2009.</para>
27 <listitem><para>Added build-time checks to atf-c and atf-c++. A binding
28 for atf-sh will come later.</para></listitem>
30 <listitem><para>Migrated all build-time checks for header files to proper
31 ATF tests. This demonstrates the use of the new feature described
32 above.</para></listitem>
34 <listitem><para>Added an internal API for child process
35 management.</para></listitem>
37 <listitem><para>Converted all plain-text distribution documents to a Docbook
38 canonical version, and include pre-generated plain text and HTML copies in
39 the distribution file.</para></listitem>
41 <listitem><para>Simplified the contents of the
42 <filename>Makefile.am</filename> by regenerating it from a canonical
43 <filename>Makefile.am.m4</filename> source. As a side-effect, some
44 dependency specifications were fixed.</para></listitem>
46 <listitem><para>Migrated all checks from the <literal>check</literal> target
47 to <literal>installcheck</literal>, as these require ATF to be
48 installed.</para></listitem>
50 <listitem><para>Fixed sign comparison mismatches triggered by
51 the now-enabled <literal>-Wsign-compare</literal>.</para></listitem>
53 <listitem><para>Fixed many memory and object leaks.</para></listitem>
59 <section id="atf-0-6">
61 <title>Changes in version 0.6</title>
63 <para>Experimental version released on January 18th, 2009.</para>
67 <listitem><para>Make atf-exec be able to kill its child process after a
68 certain period of time; this is controlled through the new -t
69 option.</para></listitem>
71 <listitem><para>Change atf-sh to use atf-exec's -t option to control the
72 test case's timeouts, instead of doing it internally. Same behavior as
73 before, but noticeably faster.</para></listitem>
75 <listitem><para>atf-exec's -g option and atf-killpg are gone due to the
76 previous change.</para></listitem>
78 <listitem><para>Added the atf-check(1) tool, a program that executes a
79 given command and checks its exit code against a known value and allows the
80 management of stdout and stderr in multiple ways. This replaces the
81 previous atf_check function in the atf-sh library and exposes this
82 functionality to both atf-c and atf-c++.</para></listitem>
84 <listitem><para>Added the ATF_REQUIRE family of macros to the C interface.
85 These help in checking for fatal test conditions. The old ATF_CHECK macros
86 now perform non-fatal checks only. I.e. by using ATF_CHECK, the test case
87 can now continue its execution and the failures will not be reported until
88 the end of the whole run.</para></listitem>
90 <listitem><para>Extended the amount of ATF_CHECK_* C macros with new ones
91 to provide more features to the developer. These also have their
92 corresponding counterparts in the ATF_REQUIRE_* family. The new macros
93 (listing the suffixes only) are: _EQ (replaces _EQUAL), _EQ_MSG, _STREQ and
94 _STREQ_MSG.</para></listitem>
100 <section id="atf-0-5">
102 <title>Changes in version 0.5</title>
104 <para>Experimental version released on May 1st, 2008.</para>
108 <listitem><para>Clauses 3 and 4 of the BSD license used by the project were
109 dropped. All the code is now under a 2-clause BSD license compatible with
110 the GNU General Public License (GPL).</para></listitem>
112 <listitem><para>Added a C-only binding so that binary test programs do not
113 need to be tied to C++ at all. This binding is now known as the atf-c
114 library.</para></listitem>
116 <listitem><para>Renamed the C++ binding to atf-c++ for consistency with the
117 new atf-c.</para></listitem>
119 <listitem><para>Renamed the POSIX shell binding to atf-sh for consistency
120 with the new atf-c and atf-c++.</para></listitem>
122 <listitem><para>Added a -w flag to test programs through which it is
123 possible to specify the work directory to be used. This was possible in
124 prior releases by defining the workdir configuration variable (-v
125 workdir=...), but was a conceptually incorrect mechanism.</para></listitem>
127 <listitem><para>Test programs now preserve the execution order of test
128 cases when they are given in the command line. Even those mentioned more
129 than once are executed multiple times to comply with the user's
130 requests.</para></listitem>
136 <section id="atf-0-4">
138 <title>Changes in version 0.4</title>
140 <para>Experimental version released on February 4th, 2008.</para>
144 <listitem><para>Added two new manual pages, atf-c++-api and atf-sh-api,
145 describing the C++ and POSIX shell interfaces used to write test
146 programs.</para></listitem>
148 <listitem><para>Added a pkg-config file, useful to get the flags to build
149 against the C++ library or to easily detect the presence of
150 ATF.</para></listitem>
152 <listitem><para>Added a way for test cases to require a specific
153 architecture and/or machine type through the new 'require.arch' and
154 'require.machine' meta-data properties, respectively.</para></listitem>
156 <listitem><para>Added the 'timeout' property to test cases, useful to set
157 an upper-bound limit for the test's run time and thus prevent global test
158 program stalls due to the test case's misbehavior.</para></listitem>
160 <listitem><para>Added the atf-exec(1) internal utility, used to execute a
161 command after changing the process group it belongs to.</para></listitem>
163 <listitem><para>Added the atf-killpg(1) internal utility, used to kill
164 process groups.</para></listitem>
166 <listitem><para>Multiple portability fixes. Of special interest, full
167 support for SunOS (Solaris Express Developer Edition 2007/09) using the Sun
168 Studio 12 C++ compiler.</para></listitem>
170 <listitem><para>Fixed a serious bug that prevented atf-run(1) from working
171 at all under Fedora 8 x86_64. Due to the nature of the bug, other
172 platforms were likely affected too.</para></listitem>
178 <section id="atf-0-3">
180 <title>Changes in version 0.3</title>
182 <para>Experimental version released on November 11th, 2007.</para>
186 <listitem><para>Added XML output support to atf-report. This is
187 accompanied by a DTD for the format's structure and sample XSLT/CSS files
188 to post-process this output and convert it to a plain HTML
189 report.</para></listitem>
191 <listitem><para>Changed atf-run to add system information to the report it
192 generates. This is currently used by atf-report's XML output only, and is
193 later printed in the HTML reports in a nice and useful summary table. The
194 user and system administrator are allowed to tune this feature by means of
195 hooks.</para></listitem>
197 <listitem><para>Removed the test cases' 'isolated' property. This was
198 intended to avoid touching the file system at all when running the related
199 test case, but this has not been true for a long while: some control files
200 are unconditionally required for several purposes, and we cannot easily get
201 rid of them. This way we remove several critical and delicate pieces of
202 code.</para></listitem>
204 <listitem><para>Improved atf-report's CSV output format to include
205 information about test programs too.</para></listitem>
207 <listitem><para>Fixed the tests that used atf-compile to not require this
208 tool as a helper. Avoids systems without build-time utilities to skip many
209 tests that could otherwise be run. (E.g. NetBSD without the comp.tgz set
210 installed.)</para></listitem>
212 <listitem><para>Many general cleanups: Fixed many pieces of code marked as
213 ugly and/or incomplete.</para></listitem>
219 <section id="atf-0-2">
221 <title>Changes in version 0.2</title>
223 <para>Experimental version released on September 20th, 2007.</para>
227 <listitem><para>Test cases now get a known umask on
228 entry.</para></listitem>
230 <listitem><para>atf-run now detects many unexpected failures caused by test
231 programs and reports them as bogus tests. atf-report is able to handle
232 these new errors and nicely reports them to the user.</para></listitem>
234 <listitem><para>All the data formats read and written by the tools have
235 been documented and cleaned up. These include those grammars that define
236 how the different components communicate with each other as well as the
237 format of files written by the developers and users: the Atffiles and the
238 configuration files.</para></listitem>
240 <listitem><para>Added the atf-version tool, a utility that displays
241 information about the currently installed version of ATF.</para></listitem>
243 <listitem><para>Test cases can now define an optional cleanup routine to
244 undo their actions regardless of their exit status.</para></listitem>
246 <listitem><para>atf-report now summarizes the list of failed (bogus) test
247 programs when using the ticker output format.</para></listitem>
249 <listitem><para>Test programs now capture some termination signals and
250 clean up any temporary files before exiting the program.</para></listitem>
252 <listitem><para>Multiple bug fixes and improvements all
253 around.</para></listitem>
259 <section id="atf-0-1">
261 <title>Changes in version 0.1</title>
263 <para>Experimental version released on August 20th, 2007.</para>
267 <listitem><para>First public version. This was released coinciding with
268 the end of the Google Summer of Code 2007 program.</para></listitem>