xref: /freebsd/contrib/atf/NEWS (revision c243e4902be8df1e643c76b5f18b68bb77cc5268)
1*c243e490SMarcel MoolenaarMajor changes between releases                  Automated Testing Framework
2*c243e490SMarcel Moolenaar===========================================================================
3*c243e490SMarcel Moolenaar
4*c243e490SMarcel Moolenaar
5*c243e490SMarcel MoolenaarChanges in version 0.16
6*c243e490SMarcel Moolenaar***********************
7*c243e490SMarcel Moolenaar
8*c243e490SMarcel MoolenaarExperimental version released on July 10th, 2012.
9*c243e490SMarcel Moolenaar
10*c243e490SMarcel Moolenaar* Added a --enable-tools flag to configure to request the build of the
11*c243e490SMarcel Moolenaar  deprecated ATF tools, whose build is now disabled by default.  In order
12*c243e490SMarcel Moolenaar  to continue running tests, you should migrate to Kyua instead of enabling
13*c243e490SMarcel Moolenaar  the build of the deprecated tools.  The kyua-atf-compat package provides
14*c243e490SMarcel Moolenaar  transitional compatibility versions of atf-run and atf-report built on
15*c243e490SMarcel Moolenaar  top of Kyua.
16*c243e490SMarcel Moolenaar
17*c243e490SMarcel Moolenaar* Tweaked the ATF_TEST_CASE macro of atf-c++ so that the compiler can
18*c243e490SMarcel Moolenaar  detect defined but unused test cases.
19*c243e490SMarcel Moolenaar
20*c243e490SMarcel Moolenaar* PR bin/45859: Fixed some XSLT bugs that resulted in the tc-time and
21*c243e490SMarcel Moolenaar  tp-time XML tags leaking into the generated HTML file.  Also improved
22*c243e490SMarcel Moolenaar  the CSS file slightly to correct alignment and color issues with the
23*c243e490SMarcel Moolenaar  timestamps column.
24*c243e490SMarcel Moolenaar
25*c243e490SMarcel Moolenaar* Optimized atf-c++/macros.hpp so that GNU G++ consumes less memory during
26*c243e490SMarcel Moolenaar  compilation with GNU G++.
27*c243e490SMarcel Moolenaar
28*c243e490SMarcel Moolenaar* Flipped the default to building shared libraries for atf-c and atf-c++,
29*c243e490SMarcel Moolenaar  and started versioning them.  As a side-effect, this removes the
30*c243e490SMarcel Moolenaar  --enable-unstable-shared flag from configure that appears to not work any
31*c243e490SMarcel Moolenaar  more (under NetBSD).  Additionally, some distributions require the use of
32*c243e490SMarcel Moolenaar  shared libraries for proper dependency tracking (e.g. Fedora), so it is
33*c243e490SMarcel Moolenaar  better if we do the right versioning upstream.
34*c243e490SMarcel Moolenaar
35*c243e490SMarcel Moolenaar* Project hosting moved from an adhoc solution (custom web site and
36*c243e490SMarcel Moolenaar  Monotone repository) to Google Code (standard wiki and Git).  ATF now
37*c243e490SMarcel Moolenaar  lives in a subcomponent of the Kyua project.
38*c243e490SMarcel Moolenaar
39*c243e490SMarcel Moolenaar
40*c243e490SMarcel MoolenaarChanges in version 0.15
41*c243e490SMarcel Moolenaar***********************
42*c243e490SMarcel Moolenaar
43*c243e490SMarcel MoolenaarExperimental version released on January 16th, 2012.
44*c243e490SMarcel Moolenaar
45*c243e490SMarcel Moolenaar* Respect stdin in atf-check.  The previous release silenced stdin for any
46*c243e490SMarcel Moolenaar  processes spawned by atf, not only test programs, which caused breakage
47*c243e490SMarcel Moolenaar  in tests that pipe data through atf-check.
48*c243e490SMarcel Moolenaar
49*c243e490SMarcel Moolenaar* Performance improvements to atf-sh.
50*c243e490SMarcel Moolenaar
51*c243e490SMarcel Moolenaar* Enabled detection of unused parameters and variables in the code and
52*c243e490SMarcel Moolenaar  fixed all warnings.
53*c243e490SMarcel Moolenaar
54*c243e490SMarcel Moolenaar* Changed the behavior of "developer mode".  Compiler warnings are now
55*c243e490SMarcel Moolenaar  enabled unconditionally regardless of whether we are in developer mode or
56*c243e490SMarcel Moolenaar  not; developer mode is now only used to perform strict warning checks and
57*c243e490SMarcel Moolenaar  to enable assertions.  Additionally, developer mode is now only
58*c243e490SMarcel Moolenaar  automatically enabled when building from the repository, not for formal
59*c243e490SMarcel Moolenaar  releases.
60*c243e490SMarcel Moolenaar
61*c243e490SMarcel Moolenaar* Added new Autoconf M4 macros (ATF_ARG_WITH, ATF_CHECK_C and
62*c243e490SMarcel Moolenaar  ATF_CHECK_CXX) to provide a consistent way of defining a --with-arg flag
63*c243e490SMarcel Moolenaar  in configure scripts and detecting the presence of any of the ATF
64*c243e490SMarcel Moolenaar  bindings.  Note that ATF_CHECK_SH was already introduced in 0.14, but it
65*c243e490SMarcel Moolenaar  has now been modified to also honor --with-atf if instantiated.
66*c243e490SMarcel Moolenaar
67*c243e490SMarcel Moolenaar* Added timing support to atf-run / atf-report.
68*c243e490SMarcel Moolenaar
69*c243e490SMarcel Moolenaar* Added support for a 'require.memory' property, to specify the minimum
70*c243e490SMarcel Moolenaar  amount of physical memory needed by the test case to yield valid results.
71*c243e490SMarcel Moolenaar
72*c243e490SMarcel Moolenaar* PR bin/45690: Force an ISO-8859-1 encoding in the XML files generated by
73*c243e490SMarcel Moolenaar  atf-report so that invalid data in the output of test cases does not
74*c243e490SMarcel Moolenaar  mangle our report.
75*c243e490SMarcel Moolenaar
76*c243e490SMarcel Moolenaar
77*c243e490SMarcel MoolenaarChanges in version 0.14
78*c243e490SMarcel Moolenaar***********************
79*c243e490SMarcel Moolenaar
80*c243e490SMarcel MoolenaarExperimental version released on June 14th, 2011.
81*c243e490SMarcel Moolenaar
82*c243e490SMarcel Moolenaar* Added a pkg-config file for atf-sh and an aclocal file to ease the
83*c243e490SMarcel Moolenaar  detection of atf-sh from autoconf scripts.
84*c243e490SMarcel Moolenaar
85*c243e490SMarcel Moolenaar* Made the default test case body defined by atf_sh fail.  This is to
86*c243e490SMarcel Moolenaar  ensure that test cases are properly defined in test programs and helps
87*c243e490SMarcel Moolenaar  in catching typos in the names of the body functions.
88*c243e490SMarcel Moolenaar
89*c243e490SMarcel Moolenaar* PR bin/44882: Made atf-run connect the stdin of test cases to /dev/zero.
90*c243e490SMarcel Moolenaar  This provides more consistent results with "normal" execution (in
91*c243e490SMarcel Moolenaar  particular, when tests are executed detached from a terminal).
92*c243e490SMarcel Moolenaar
93*c243e490SMarcel Moolenaar* Made atf-run hardcode TZ=UTC for test cases.  It used to undefine TZ, but
94*c243e490SMarcel Moolenaar  that does not take into account that libc determines the current timezone
95*c243e490SMarcel Moolenaar  from a configuration file.
96*c243e490SMarcel Moolenaar
97*c243e490SMarcel Moolenaar* All test programs will now print a warning when they are not run through
98*c243e490SMarcel Moolenaar  atf-run(1) stating that this is unsupported and may deliver incorrect
99*c243e490SMarcel Moolenaar  results.
100*c243e490SMarcel Moolenaar
101*c243e490SMarcel Moolenaar* Added support for the 'require.files' test-case property.  This allows
102*c243e490SMarcel Moolenaar  test cases to specify installed files that must be present for the test
103*c243e490SMarcel Moolenaar  case to run.
104*c243e490SMarcel Moolenaar
105*c243e490SMarcel Moolenaar
106*c243e490SMarcel MoolenaarChanges in version 0.13
107*c243e490SMarcel Moolenaar***********************
108*c243e490SMarcel Moolenaar
109*c243e490SMarcel MoolenaarExperimental version released on March 31st, 2011.
110*c243e490SMarcel Moolenaar
111*c243e490SMarcel MoolenaarThis is the first release after the creation of the Kyua project, a more
112*c243e490SMarcel Moolenaarmodular and reliable replacement for ATF.  From now on, ATF will change to
113*c243e490SMarcel Moolenaaraccomodate the transition to this new codebase, but ATF will still continue
114*c243e490SMarcel Moolenaarto see development in the short/medium term.  Check out the project page at
115*c243e490SMarcel Moolenaarhttp://code.google.com/p/kyua/ for more details.
116*c243e490SMarcel Moolenaar
117*c243e490SMarcel MoolenaarThe changes in this release are:
118*c243e490SMarcel Moolenaar
119*c243e490SMarcel Moolenaar* Added support to run the tests with the Kyua runtime engine (kyua-cli), a
120*c243e490SMarcel Moolenaar  new package that aims to replace atf-run and atf-report.  The ATF tests
121*c243e490SMarcel Moolenaar  can be run with the new system by issuing a 'make installcheck-kyua' from
122*c243e490SMarcel Moolenaar  the top-level directory of the project (assuming the 'kyua' binary is
123*c243e490SMarcel Moolenaar  available during the configuration stage of ATF).
124*c243e490SMarcel Moolenaar
125*c243e490SMarcel Moolenaar* atf-run and atf-report are now in maintenance mode (but *not* deprecated
126*c243e490SMarcel Moolenaar  yet!).  Kyua already implements a new, much more reliable runtime engine
127*c243e490SMarcel Moolenaar  that provides similar features to these tools.  That said, it is not
128*c243e490SMarcel Moolenaar  complete yet so all development efforts should go towards it.
129*c243e490SMarcel Moolenaar
130*c243e490SMarcel Moolenaar* If GDB is installed, atf-run dumps the stack trace of crashing test
131*c243e490SMarcel Moolenaar  programs in an attempt to aid debugging.  Contributed by Antti Kantee.
132*c243e490SMarcel Moolenaar
133*c243e490SMarcel Moolenaar* Reverted default timeout change in previous release and reset its value
134*c243e490SMarcel Moolenaar  to 5 minutes.  This was causing several issues, specially when running
135*c243e490SMarcel Moolenaar  the existing NetBSD test suite in qemu.
136*c243e490SMarcel Moolenaar
137*c243e490SMarcel Moolenaar* Fixed the 'match' output checker in atf-check to properly validate the
138*c243e490SMarcel Moolenaar  last line of a file even if it does not have a newline.
139*c243e490SMarcel Moolenaar
140*c243e490SMarcel Moolenaar* Added the ATF_REQUIRE_IN and ATF_REQUIRE_NOT_IN macros to atf-c++ to
141*c243e490SMarcel Moolenaar  check for the presence (or lack thereof) of an element in a collection.
142*c243e490SMarcel Moolenaar
143*c243e490SMarcel Moolenaar* PR bin/44176: Fixed a race condition in atf-run that would crash atf-run
144*c243e490SMarcel Moolenaar  when the cleanup of a test case triggered asynchronous modifications to
145*c243e490SMarcel Moolenaar  its work directory (e.g. killing a daemon process that cleans up a pid
146*c243e490SMarcel Moolenaar  file in the work directory).
147*c243e490SMarcel Moolenaar
148*c243e490SMarcel Moolenaar* PR bin/44301: Fixed the sample XSLT file to report bogus test programs
149*c243e490SMarcel Moolenaar  instead of just listing them as having 0 test cases.
150*c243e490SMarcel Moolenaar
151*c243e490SMarcel Moolenaar
152*c243e490SMarcel MoolenaarChanges in version 0.12
153*c243e490SMarcel Moolenaar***********************
154*c243e490SMarcel Moolenaar
155*c243e490SMarcel MoolenaarExperimental version released on November 7th, 2010.
156*c243e490SMarcel Moolenaar
157*c243e490SMarcel Moolenaar* Added the ATF_REQUIRE_THROW_RE to atf-c++, which is the same as
158*c243e490SMarcel Moolenaar  ATF_REQUIRE_THROW but allows checking for the validity of the exception's
159*c243e490SMarcel Moolenaar  error message by means of a regular expression.
160*c243e490SMarcel Moolenaar
161*c243e490SMarcel Moolenaar* Added the ATF_REQUIRE_MATCH to atf-c++, which allows checking for a
162*c243e490SMarcel Moolenaar  regular expression match in a string.
163*c243e490SMarcel Moolenaar
164*c243e490SMarcel Moolenaar* Changed the default timeout for test cases from 5 minutes to 30 seconds.
165*c243e490SMarcel Moolenaar  30 seconds is long enough for virtually all tests to complete, and 5
166*c243e490SMarcel Moolenaar  minutes is a way too long pause in a test suite where a single test case
167*c243e490SMarcel Moolenaar  stalls.
168*c243e490SMarcel Moolenaar
169*c243e490SMarcel Moolenaar* Deprecated the use.fs property.  While this seemed like a good idea in
170*c243e490SMarcel Moolenaar  the first place to impose more control on what test cases can do, it
171*c243e490SMarcel Moolenaar  turns out to be bad.  First, use.fs=false prevents bogus test cases
172*c243e490SMarcel Moolenaar  from dumping core so after-the-fact debugging is harder.  Second,
173*c243e490SMarcel Moolenaar  supporting use.fs adds a lot of unnecessary complexity.  atf-run will
174*c243e490SMarcel Moolenaar  now ignore any value provided to use.fs and will allow test cases to
175*c243e490SMarcel Moolenaar  freely access the file system if they wish to.
176*c243e490SMarcel Moolenaar
177*c243e490SMarcel Moolenaar* Added the atf_tc_get_config_var_as_{bool,long}{,_wd} functions to the atf-c
178*c243e490SMarcel Moolenaar  library.  The 'text' module became private in 0.11 but was being used
179*c243e490SMarcel Moolenaar  externally to simplify the parsing of configuration variables.
180*c243e490SMarcel Moolenaar
181*c243e490SMarcel Moolenaar* Made atf-run recognize the 'unprivileged-user' configuration variable
182*c243e490SMarcel Moolenaar  and automatically drop root privileges when a test case sets
183*c243e490SMarcel Moolenaar  require.user=unprivileged.  Note that this is, by no means, done for
184*c243e490SMarcel Moolenaar  security purposes; this is just for user convenience; tests should, in
185*c243e490SMarcel Moolenaar  general, not be blindly run as root in the first place.
186*c243e490SMarcel Moolenaar
187*c243e490SMarcel Moolenaar
188*c243e490SMarcel MoolenaarChanges in version 0.11
189*c243e490SMarcel Moolenaar***********************
190*c243e490SMarcel Moolenaar
191*c243e490SMarcel MoolenaarExperimental version released on October 20th, 2010.
192*c243e490SMarcel Moolenaar
193*c243e490SMarcel Moolenaar* The ATF_CHECK* macros in atf-c++ were renamed to ATF_REQUIRE* to match
194*c243e490SMarcel Moolenaar  their counterparts in atf-c.
195*c243e490SMarcel Moolenaar
196*c243e490SMarcel Moolenaar* Clearly separated the modules in atf-c that are supposed to be public
197*c243e490SMarcel Moolenaar  from those that are implementation details.  The header files for the
198*c243e490SMarcel Moolenaar  internal modules are not installed any more.
199*c243e490SMarcel Moolenaar
200*c243e490SMarcel Moolenaar* Made the atf-check tool private.  It is only required by atf-sh and being
201*c243e490SMarcel Moolenaar  public has the danger of causing confusion.  Also, making it private
202*c243e490SMarcel Moolenaar  simplifies the public API of atf.
203*c243e490SMarcel Moolenaar
204*c243e490SMarcel Moolenaar* Changed atf-sh to enable per-command error checking (set -e) by default.
205*c243e490SMarcel Moolenaar  This catches many cases in which a test case is broken but it is not
206*c243e490SMarcel Moolenaar  reported as such because execution continues.
207*c243e490SMarcel Moolenaar
208*c243e490SMarcel Moolenaar* Fixed the XSTL and CSS stylesheets to support expected failures.
209*c243e490SMarcel Moolenaar
210*c243e490SMarcel Moolenaar
211*c243e490SMarcel MoolenaarChanges in version 0.10
212*c243e490SMarcel Moolenaar***********************
213*c243e490SMarcel Moolenaar
214*c243e490SMarcel MoolenaarExperimental version released on July 2nd, 2010.
215*c243e490SMarcel Moolenaar
216*c243e490SMarcel MoolenaarMiscellaneous features
217*c243e490SMarcel Moolenaar
218*c243e490SMarcel Moolenaar* Added expected failures support to test cases and atf-run.  These
219*c243e490SMarcel Moolenaar  include, for example, expected clean exits, expected reception of fatal
220*c243e490SMarcel Moolenaar  signals, expected timeouts and expected errors in condition checks.
221*c243e490SMarcel Moolenaar  These statuses can be used to denote test cases that are known to fail
222*c243e490SMarcel Moolenaar  due to a bug in the code they are testing.  atf-report reports these
223*c243e490SMarcel Moolenaar  tests separately but they do not count towards the failed test cases
224*c243e490SMarcel Moolenaar  amount.
225*c243e490SMarcel Moolenaar
226*c243e490SMarcel Moolenaar* Added the ATF_CHECK_ERRNO and ATF_REQUIRE_ERRNO to the C library to
227*c243e490SMarcel Moolenaar  allow easy checking of call failures that update errno.
228*c243e490SMarcel Moolenaar
229*c243e490SMarcel Moolenaar* Added the has.cleanup meta-data property to test caes that specifies
230*c243e490SMarcel Moolenaar  whether the test case has a cleanup routine or not; its value is
231*c243e490SMarcel Moolenaar  automatically set.  This property is read by atf-run to know if it has to
232*c243e490SMarcel Moolenaar  run the cleanup routine; skipping this run for every test case
233*c243e490SMarcel Moolenaar  significantly speeds up the run time of test suites.
234*c243e490SMarcel Moolenaar
235*c243e490SMarcel Moolenaar* Reversed the order of the ATF_CHECK_THROW macro in the C++ binding to
236*c243e490SMarcel Moolenaar  take the expected exception as the first argument and the statement to
237*c243e490SMarcel Moolenaar  execute as the second argument.
238*c243e490SMarcel Moolenaar
239*c243e490SMarcel MoolenaarChanges in atf-check
240*c243e490SMarcel Moolenaar
241*c243e490SMarcel Moolenaar* Changed atf-check to support negating the status and output checks by
242*c243e490SMarcel Moolenaar  prefixing them with not- and added support to specify multiple checkers
243*c243e490SMarcel Moolenaar  for stdout and stderr, not only one.
244*c243e490SMarcel Moolenaar
245*c243e490SMarcel Moolenaar* Added the match output checker to atf-check to look for regular
246*c243e490SMarcel Moolenaar  expressions in the stdout and stderr of commands.
247*c243e490SMarcel Moolenaar
248*c243e490SMarcel Moolenaar* Modified the exit checks in atf-check to support checking for the
249*c243e490SMarcel Moolenaar  reception of signals.
250*c243e490SMarcel Moolenaar
251*c243e490SMarcel MoolenaarCode simplifications and cleanups
252*c243e490SMarcel Moolenaar
253*c243e490SMarcel Moolenaar* Removed usage messages from test programs to simplify the
254*c243e490SMarcel Moolenaar  implementation of every binding by a significant amount.  They just now
255*c243e490SMarcel Moolenaar  refer the user to the appropriate manual page and do not attempt to wrap
256*c243e490SMarcel Moolenaar  lines on terminal boundaries.  Test programs are not supposed to be run
257*c243e490SMarcel Moolenaar  by users directly so this minor interface regression is not important.
258*c243e490SMarcel Moolenaar
259*c243e490SMarcel Moolenaar* Removed the atf-format internal utility, which is unused after the
260*c243e490SMarcel Moolenaar  change documented above.
261*c243e490SMarcel Moolenaar
262*c243e490SMarcel Moolenaar* Removed the atf-cleanup internal utility.  It has been unused since the
263*c243e490SMarcel Moolenaar  test case isolation was moved to atf-run in 0.8
264*c243e490SMarcel Moolenaar
265*c243e490SMarcel Moolenaar* Splitted the Makefile.am into smaller files for easier maintenance and
266*c243e490SMarcel Moolenaar  dropped the use of M4.  Only affects users building from the repository
267*c243e490SMarcel Moolenaar  sources.
268*c243e490SMarcel Moolenaar
269*c243e490SMarcel Moolenaar* Intermixed tests with the source files in the source tree to provide
270*c243e490SMarcel Moolenaar  them more visibility and easier access.  The tests directory is gone from
271*c243e490SMarcel Moolenaar  the source tree and tests are now suffixed by _test, not prefixed by t_.
272*c243e490SMarcel Moolenaar
273*c243e490SMarcel Moolenaar* Simplifications to the atf-c library: removed the io, tcr and ui
274*c243e490SMarcel Moolenaar  modules as they had become unnecessary after all simplifications
275*c243e490SMarcel Moolenaar  introduced since the 0.8 release.
276*c243e490SMarcel Moolenaar
277*c243e490SMarcel Moolenaar* Removed the application/X-atf-tcr format introduced in 0.8 release.
278*c243e490SMarcel Moolenaar  Tests now print a much simplified format that is easy to parse and nicer
279*c243e490SMarcel Moolenaar  to read by end users.  As a side effect, the default for test cases is
280*c243e490SMarcel Moolenaar  now to print their results to stdout unless otherwise stated by providing
281*c243e490SMarcel Moolenaar  the -r flag.
282*c243e490SMarcel Moolenaar
283*c243e490SMarcel Moolenaar* Removed XML distribution documents and replaced them with plain-text
284*c243e490SMarcel Moolenaar  documents.  They provided little value and introduced a lot of complexity
285*c243e490SMarcel Moolenaar  to the build system.
286*c243e490SMarcel Moolenaar
287*c243e490SMarcel Moolenaar* Simplified the output of atf-version by not attempting to print a
288*c243e490SMarcel Moolenaar  revision number when building form a distfile.  Makes the build system
289*c243e490SMarcel Moolenaar  easier to maintain.
290*c243e490SMarcel Moolenaar
291*c243e490SMarcel Moolenaar
292*c243e490SMarcel MoolenaarChanges in version 0.9
293*c243e490SMarcel Moolenaar**********************
294*c243e490SMarcel Moolenaar
295*c243e490SMarcel MoolenaarExperimental version released on June 3rd, 2010.
296*c243e490SMarcel Moolenaar
297*c243e490SMarcel Moolenaar* Added atf-sh, an interpreter to process test programs written using
298*c243e490SMarcel Moolenaar  the shell API.  This is not really a shell interpreter by itself though:
299*c243e490SMarcel Moolenaar  it is just a wrapper around the system shell that eases the loading of
300*c243e490SMarcel Moolenaar  the necessary ATF libraries.
301*c243e490SMarcel Moolenaar
302*c243e490SMarcel Moolenaar* Removed atf-compile in favour of atf-sh.
303*c243e490SMarcel Moolenaar
304*c243e490SMarcel Moolenaar* Added the use.fs metadata property to test case, which is used to
305*c243e490SMarcel Moolenaar  specify which test cases require file system access.  This is to
306*c243e490SMarcel Moolenaar  highlight dependencies on external resources more clearly and to speed up
307*c243e490SMarcel Moolenaar  the execution of test suites by skipping the creation of many unnecessary
308*c243e490SMarcel Moolenaar  work directories.
309*c243e490SMarcel Moolenaar
310*c243e490SMarcel Moolenaar* Fixed test programs to get a sane default value for their source
311*c243e490SMarcel Moolenaar  directory.  This means that it should not be necessary any more to pass
312*c243e490SMarcel Moolenaar  -s when running test programs that do not live in the current directory.
313*c243e490SMarcel Moolenaar
314*c243e490SMarcel Moolenaar* Defining test case headers became optional.  This is trivial to achieve
315*c243e490SMarcel Moolenaar  in shell-based tests but a bit ugly in C and C++.  In C, use the new
316*c243e490SMarcel Moolenaar  ATF_TC_WITHOUT_HEAD macro to define the test case, and in C++ use
317*c243e490SMarcel Moolenaar  ATF_TEST_CASE_WITHOUT_HEAD.
318*c243e490SMarcel Moolenaar
319*c243e490SMarcel Moolenaar
320*c243e490SMarcel MoolenaarChanges in version 0.8
321*c243e490SMarcel Moolenaar**********************
322*c243e490SMarcel Moolenaar
323*c243e490SMarcel MoolenaarExperimental version released on May 7th, 2010.
324*c243e490SMarcel Moolenaar
325*c243e490SMarcel Moolenaar* Test programs no longer run several test cases in a row.  The execution
326*c243e490SMarcel Moolenaar  of a test program now requires a test case name, and that single test
327*c243e490SMarcel Moolenaar  case is executed.  To execute several test cases, use the atf-run utility
328*c243e490SMarcel Moolenaar  as usual.
329*c243e490SMarcel Moolenaar
330*c243e490SMarcel Moolenaar* Test programs no longer fork a subprocess to isolate the execution of
331*c243e490SMarcel Moolenaar  test cases.  They run the test case code in-process, and a crash of the
332*c243e490SMarcel Moolenaar  test case will result in a crash of the test program.  This is to ease
333*c243e490SMarcel Moolenaar  debugging of faulty test cases.
334*c243e490SMarcel Moolenaar
335*c243e490SMarcel Moolenaar* Test programs no longer isolate their test cases.  This means that they
336*c243e490SMarcel Moolenaar  will not create temporary directories nor sanitize the environment any
337*c243e490SMarcel Moolenaar  more.  Yes: running a test case that depends on system state by hand will
338*c243e490SMarcel Moolenaar  most likely yield different results depending on where (machine,
339*c243e490SMarcel Moolenaar  directory, user environment, etc.) it is run.  Isolation has been moved
340*c243e490SMarcel Moolenaar  to atf-run.
341*c243e490SMarcel Moolenaar
342*c243e490SMarcel Moolenaar* Test programs no longer print a cryptic format (application/X-atf-tcs)
343*c243e490SMarcel Moolenaar  on a special file channel.  They can now print whatever they want on the
344*c243e490SMarcel Moolenaar  screen.  Because test programs can now only run one test case every time,
345*c243e490SMarcel Moolenaar  providing controlled output is not necessary any more.
346*c243e490SMarcel Moolenaar
347*c243e490SMarcel Moolenaar* Test programs no longer write their status into a special file
348*c243e490SMarcel Moolenaar  descriptor.  Instead, they create a file with the results, which is later
349*c243e490SMarcel Moolenaar  parsed by atf-run.  This changes the semantics of the -r flag.
350*c243e490SMarcel Moolenaar
351*c243e490SMarcel Moolenaar* atf-run has been adjusted to perform the test case isolation.  As a
352*c243e490SMarcel Moolenaar  result, there is now a single canonical place that implements the
353*c243e490SMarcel Moolenaar  isolation of test caes.  In previous releases, the three language
354*c243e490SMarcel Moolenaar  bindings (C, C++ and shell) had to be kept in sync with each other (read:
355*c243e490SMarcel Moolenaar  not a nice thing to do at all).  As a side effect of this change, writing
356*c243e490SMarcel Moolenaar  bindings for other languages will be much, much easier from now on.
357*c243e490SMarcel Moolenaar
358*c243e490SMarcel Moolenaar* atf-run forks test programs on a test case basis, instead of on a test
359*c243e490SMarcel Moolenaar  program basis as it did before.  This is to provide the test case
360*c243e490SMarcel Moolenaar  isolation that was before implemented by the test programs themselves.
361*c243e490SMarcel Moolenaar
362*c243e490SMarcel Moolenaar* Removed the atf-exec tool.  This was used to implement test case
363*c243e490SMarcel Moolenaar  isolation in atf-sh, but it is now unnecessary.
364*c243e490SMarcel Moolenaar
365*c243e490SMarcel Moolenaar* It is now optional to define the descr meta-data property.  It has been
366*c243e490SMarcel Moolenaar  proven to be mostly useless, because test cases often carry a descriptive
367*c243e490SMarcel Moolenaar  name of their own.
368*c243e490SMarcel Moolenaar
369*c243e490SMarcel Moolenaar
370*c243e490SMarcel MoolenaarChanges in version 0.7
371*c243e490SMarcel Moolenaar**********************
372*c243e490SMarcel Moolenaar
373*c243e490SMarcel MoolenaarExperimental version released on December 22nd, 2009.
374*c243e490SMarcel Moolenaar
375*c243e490SMarcel Moolenaar* Added build-time checks to atf-c and atf-c++.  A binding for atf-sh
376*c243e490SMarcel Moolenaar  will come later.
377*c243e490SMarcel Moolenaar
378*c243e490SMarcel Moolenaar* Migrated all build-time checks for header files to proper ATF tests.
379*c243e490SMarcel Moolenaar  This demonstrates the use of the new feature described above.
380*c243e490SMarcel Moolenaar
381*c243e490SMarcel Moolenaar* Added an internal API for child process management.
382*c243e490SMarcel Moolenaar
383*c243e490SMarcel Moolenaar* Converted all plain-text distribution documents to a Docbook canonical
384*c243e490SMarcel Moolenaar  version, and include pre-generated plain text and HTML copies in the
385*c243e490SMarcel Moolenaar  distribution file.
386*c243e490SMarcel Moolenaar
387*c243e490SMarcel Moolenaar* Simplified the contents of the Makefile.am by regenerating it from a
388*c243e490SMarcel Moolenaar  canonical Makefile.am.m4 source.  As a side-effect, some dependency
389*c243e490SMarcel Moolenaar  specifications were fixed.
390*c243e490SMarcel Moolenaar
391*c243e490SMarcel Moolenaar* Migrated all checks from the check target to installcheck, as these
392*c243e490SMarcel Moolenaar  require ATF to be installed.
393*c243e490SMarcel Moolenaar
394*c243e490SMarcel Moolenaar* Fixed sign comparison mismatches triggered by the now-enabled
395*c243e490SMarcel Moolenaar  -Wsign-compare.
396*c243e490SMarcel Moolenaar
397*c243e490SMarcel Moolenaar* Fixed many memory and object leaks.
398*c243e490SMarcel Moolenaar
399*c243e490SMarcel Moolenaar
400*c243e490SMarcel MoolenaarChanges in version 0.6
401*c243e490SMarcel Moolenaar**********************
402*c243e490SMarcel Moolenaar
403*c243e490SMarcel MoolenaarExperimental version released on January 18th, 2009.
404*c243e490SMarcel Moolenaar
405*c243e490SMarcel Moolenaar* Make atf-exec be able to kill its child process after a certain period
406*c243e490SMarcel Moolenaar  of time; this is controlled through the new -t option.
407*c243e490SMarcel Moolenaar
408*c243e490SMarcel Moolenaar* Change atf-sh to use atf-exec's -t option to control the test case's
409*c243e490SMarcel Moolenaar  timeouts, instead of doing it internally.  Same behavior as before, but
410*c243e490SMarcel Moolenaar  noticeably faster.
411*c243e490SMarcel Moolenaar
412*c243e490SMarcel Moolenaar* atf-exec's -g option and atf-killpg are gone due to the previous
413*c243e490SMarcel Moolenaar  change.
414*c243e490SMarcel Moolenaar
415*c243e490SMarcel Moolenaar* Added the atf-check(1) tool, a program that executes a given command
416*c243e490SMarcel Moolenaar  and checks its exit code against a known value and allows the management
417*c243e490SMarcel Moolenaar  of stdout and stderr in multiple ways.  This replaces the previous
418*c243e490SMarcel Moolenaar  atf_check function in the atf-sh library and exposes this functionality
419*c243e490SMarcel Moolenaar  to both atf-c and atf-c++.
420*c243e490SMarcel Moolenaar
421*c243e490SMarcel Moolenaar* Added the ATF_REQUIRE family of macros to the C interface.  These help
422*c243e490SMarcel Moolenaar  in checking for fatal test conditions.  The old ATF_CHECK macros now
423*c243e490SMarcel Moolenaar  perform non-fatal checks only.  I.e. by using ATF_CHECK, the test case
424*c243e490SMarcel Moolenaar  can now continue its execution and the failures will not be reported
425*c243e490SMarcel Moolenaar  until the end of the whole run.
426*c243e490SMarcel Moolenaar
427*c243e490SMarcel Moolenaar* Extended the amount of ATF_CHECK_* C macros with new ones to provide
428*c243e490SMarcel Moolenaar  more features to the developer.  These also have their corresponding
429*c243e490SMarcel Moolenaar  counterparts in the ATF_REQUIRE_* family.  The new macros (listing the
430*c243e490SMarcel Moolenaar  suffixes only) are: _EQ (replaces _EQUAL), _EQ_MSG, _STREQ and
431*c243e490SMarcel Moolenaar  _STREQ_MSG.
432*c243e490SMarcel Moolenaar
433*c243e490SMarcel Moolenaar
434*c243e490SMarcel MoolenaarChanges in version 0.5
435*c243e490SMarcel Moolenaar**********************
436*c243e490SMarcel Moolenaar
437*c243e490SMarcel MoolenaarExperimental version released on May 1st, 2008.
438*c243e490SMarcel Moolenaar
439*c243e490SMarcel Moolenaar* Clauses 3 and 4 of the BSD license used by the project were dropped.
440*c243e490SMarcel Moolenaar  All the code is now under a 2-clause BSD license compatible with the GNU
441*c243e490SMarcel Moolenaar  General Public License (GPL).
442*c243e490SMarcel Moolenaar
443*c243e490SMarcel Moolenaar* Added a C-only binding so that binary test programs do not need to be
444*c243e490SMarcel Moolenaar  tied to C++ at all.  This binding is now known as the atf-c library.
445*c243e490SMarcel Moolenaar
446*c243e490SMarcel Moolenaar* Renamed the C++ binding to atf-c++ for consistency with the new atf-c.
447*c243e490SMarcel Moolenaar
448*c243e490SMarcel Moolenaar* Renamed the POSIX shell binding to atf-sh for consistency with the new
449*c243e490SMarcel Moolenaar  atf-c and atf-c++.
450*c243e490SMarcel Moolenaar
451*c243e490SMarcel Moolenaar* Added a -w flag to test programs through which it is possible to
452*c243e490SMarcel Moolenaar  specify the work directory to be used.  This was possible in prior
453*c243e490SMarcel Moolenaar  releases by defining the workdir configuration variable (-v workdir=...),
454*c243e490SMarcel Moolenaar  but was a conceptually incorrect mechanism.
455*c243e490SMarcel Moolenaar
456*c243e490SMarcel Moolenaar* Test programs now preserve the execution order of test cases when they
457*c243e490SMarcel Moolenaar  are given in the command line.  Even those mentioned more than once are
458*c243e490SMarcel Moolenaar  executed multiple times to comply with the user's requests.
459*c243e490SMarcel Moolenaar
460*c243e490SMarcel Moolenaar
461*c243e490SMarcel MoolenaarChanges in version 0.4
462*c243e490SMarcel Moolenaar**********************
463*c243e490SMarcel Moolenaar
464*c243e490SMarcel MoolenaarExperimental version released on February 4th, 2008.
465*c243e490SMarcel Moolenaar
466*c243e490SMarcel Moolenaar* Added two new manual pages, atf-c++-api and atf-sh-api, describing the
467*c243e490SMarcel Moolenaar  C++ and POSIX shell interfaces used to write test programs.
468*c243e490SMarcel Moolenaar
469*c243e490SMarcel Moolenaar* Added a pkg-config file, useful to get the flags to build against the
470*c243e490SMarcel Moolenaar  C++ library or to easily detect the presence of ATF.
471*c243e490SMarcel Moolenaar
472*c243e490SMarcel Moolenaar* Added a way for test cases to require a specific architecture and/or
473*c243e490SMarcel Moolenaar  machine type through the new 'require.arch' and 'require.machine'
474*c243e490SMarcel Moolenaar  meta-data properties, respectively.
475*c243e490SMarcel Moolenaar
476*c243e490SMarcel Moolenaar* Added the 'timeout' property to test cases, useful to set an
477*c243e490SMarcel Moolenaar  upper-bound limit for the test's run time and thus prevent global test
478*c243e490SMarcel Moolenaar  program stalls due to the test case's misbehavior.
479*c243e490SMarcel Moolenaar
480*c243e490SMarcel Moolenaar* Added the atf-exec(1) internal utility, used to execute a command
481*c243e490SMarcel Moolenaar  after changing the process group it belongs to.
482*c243e490SMarcel Moolenaar
483*c243e490SMarcel Moolenaar* Added the atf-killpg(1) internal utility, used to kill process groups.
484*c243e490SMarcel Moolenaar
485*c243e490SMarcel Moolenaar* Multiple portability fixes.  Of special interest, full support for
486*c243e490SMarcel Moolenaar  SunOS (Solaris Express Developer Edition 2007/09) using the Sun Studio 12
487*c243e490SMarcel Moolenaar  C++ compiler.
488*c243e490SMarcel Moolenaar
489*c243e490SMarcel Moolenaar* Fixed a serious bug that prevented atf-run(1) from working at all
490*c243e490SMarcel Moolenaar  under Fedora 8 x86_64.  Due to the nature of the bug, other platforms
491*c243e490SMarcel Moolenaar  were likely affected too.
492*c243e490SMarcel Moolenaar
493*c243e490SMarcel Moolenaar
494*c243e490SMarcel MoolenaarChanges in version 0.3
495*c243e490SMarcel Moolenaar**********************
496*c243e490SMarcel Moolenaar
497*c243e490SMarcel MoolenaarExperimental version released on November 11th, 2007.
498*c243e490SMarcel Moolenaar
499*c243e490SMarcel Moolenaar* Added XML output support to atf-report.  This is accompanied by a DTD
500*c243e490SMarcel Moolenaar  for the format's structure and sample XSLT/CSS files to post-process this
501*c243e490SMarcel Moolenaar  output and convert it to a plain HTML report.
502*c243e490SMarcel Moolenaar
503*c243e490SMarcel Moolenaar* Changed atf-run to add system information to the report it generates.
504*c243e490SMarcel Moolenaar  This is currently used by atf-report's XML output only, and is later
505*c243e490SMarcel Moolenaar  printed in the HTML reports in a nice and useful summary table.  The user
506*c243e490SMarcel Moolenaar  and system administrator are allowed to tune this feature by means of
507*c243e490SMarcel Moolenaar  hooks.
508*c243e490SMarcel Moolenaar
509*c243e490SMarcel Moolenaar* Removed the test cases' 'isolated' property.  This was intended to
510*c243e490SMarcel Moolenaar  avoid touching the file system at all when running the related test case,
511*c243e490SMarcel Moolenaar  but this has not been true for a long while: some control files are
512*c243e490SMarcel Moolenaar  unconditionally required for several purposes, and we cannot easily get
513*c243e490SMarcel Moolenaar  rid of them.  This way we remove several critical and delicate pieces of
514*c243e490SMarcel Moolenaar  code.
515*c243e490SMarcel Moolenaar
516*c243e490SMarcel Moolenaar* Improved atf-report's CSV output format to include information about
517*c243e490SMarcel Moolenaar  test programs too.
518*c243e490SMarcel Moolenaar
519*c243e490SMarcel Moolenaar* Fixed the tests that used atf-compile to not require this tool as a
520*c243e490SMarcel Moolenaar  helper.  Avoids systems without build-time utilities to skip many tests
521*c243e490SMarcel Moolenaar  that could otherwise be run.  (E.g. NetBSD without the comp.tgz set
522*c243e490SMarcel Moolenaar  installed.)
523*c243e490SMarcel Moolenaar
524*c243e490SMarcel Moolenaar* Many general cleanups: Fixed many pieces of code marked as ugly and/or
525*c243e490SMarcel Moolenaar  incomplete.
526*c243e490SMarcel Moolenaar
527*c243e490SMarcel Moolenaar
528*c243e490SMarcel MoolenaarChanges in version 0.2
529*c243e490SMarcel Moolenaar**********************
530*c243e490SMarcel Moolenaar
531*c243e490SMarcel MoolenaarExperimental version released on September 20th, 2007.
532*c243e490SMarcel Moolenaar
533*c243e490SMarcel Moolenaar* Test cases now get a known umask on entry.
534*c243e490SMarcel Moolenaar
535*c243e490SMarcel Moolenaar* atf-run now detects many unexpected failures caused by test programs and
536*c243e490SMarcel Moolenaar  reports them as bogus tests.  atf-report is able to handle these new
537*c243e490SMarcel Moolenaar  errors and nicely reports them to the user.
538*c243e490SMarcel Moolenaar
539*c243e490SMarcel Moolenaar* All the data formats read and written by the tools have been
540*c243e490SMarcel Moolenaar  documented and cleaned up.  These include those grammars that define how
541*c243e490SMarcel Moolenaar  the different components communicate with each other as well as the
542*c243e490SMarcel Moolenaar  format of files written by the developers and users: the Atffiles and the
543*c243e490SMarcel Moolenaar  configuration files.
544*c243e490SMarcel Moolenaar
545*c243e490SMarcel Moolenaar* Added the atf-version tool, a utility that displays information about
546*c243e490SMarcel Moolenaar  the currently installed version of ATF.
547*c243e490SMarcel Moolenaar
548*c243e490SMarcel Moolenaar* Test cases can now define an optional cleanup routine to undo their
549*c243e490SMarcel Moolenaar  actions regardless of their exit status.
550*c243e490SMarcel Moolenaar
551*c243e490SMarcel Moolenaar* atf-report now summarizes the list of failed (bogus) test programs
552*c243e490SMarcel Moolenaar  when using the ticker output format.
553*c243e490SMarcel Moolenaar
554*c243e490SMarcel Moolenaar* Test programs now capture some termination signals and clean up any
555*c243e490SMarcel Moolenaar  temporary files before exiting the program.
556*c243e490SMarcel Moolenaar
557*c243e490SMarcel Moolenaar* Multiple bug fixes and improvements all around.
558*c243e490SMarcel Moolenaar
559*c243e490SMarcel Moolenaar
560*c243e490SMarcel MoolenaarChanges in version 0.1
561*c243e490SMarcel Moolenaar**********************
562*c243e490SMarcel Moolenaar
563*c243e490SMarcel MoolenaarExperimental version released on August 20th, 2007.
564*c243e490SMarcel Moolenaar
565*c243e490SMarcel Moolenaar* First public version.  This was released coinciding with the end of the
566*c243e490SMarcel Moolenaar  Google Summer of Code 2007 program.
567*c243e490SMarcel Moolenaar
568*c243e490SMarcel Moolenaar
569*c243e490SMarcel Moolenaar===========================================================================
570*c243e490SMarcel Moolenaarvim: filetype=text:textwidth=75:expandtab:shiftwidth=2:softtabstop=2
571