xref: /freebsd/contrib/atf/NEWS (revision 0a36787e4c1fa0cf77dcf83be0867178476e372b)
1Major changes between releases                  Automated Testing Framework
2===========================================================================
3
4Changes in version 0.22
5***********************
6
7STILL UNDER DEVELOPMENT; NOT RELEASED YET.
8DON'T FORGET TO BUMP THE -version-info PRE-RELEASE IF NECESSARY!
9
10* Issue #23: Fix double-free triggered by atf_map_insert in low memory
11  scenarios, caused by an overlook in the atf_list code.
12
13* Issue #29: Fixed various typos and formatting errors in manual pages.
14
15* Issue #31: Added require.progs metadata properties to the tests that
16  need a compiler to run.
17
18* Added the atf_check_not_equal function to atf-sh to check for
19  unequal values.
20
21
22Changes in version 0.21
23***********************
24
25Released on October 23rd, 2014.
26
27* Restored the atf(7) manual page to serve as a reference to all the other
28  manual pages shipped by ATF.
29
30* Added the -s flag to atf-sh to support specifying the shell interpreter
31  to be used.
32
33* Removed ATF_WORKDIR.  The only remaining consumers have been converted to
34  use the standard TMPDIR environment variable.  As a benefit, and because
35  Kyua forces the TMPDIR to live within the test case's work directory,
36  any stale files left behind by ATF will be automatically cleaned up.
37
38* Documented the environment variables recognized by each component in the
39  relevant manual pages.  This information was lost with the atf-config(1)
40  removal.
41
42* Added a new "require.diskspace" metadata property to test cases so that
43  they can specify the minimum amount of disk space required for the test
44  to run.
45
46* Renamed the atf-{c,c++,sh}-api(3) manual pages to atf-{c,c++,sh}(3) for
47  discoverability purposes.  Symbolic links are provided for the time
48  being to still make the old names visible.
49
50* Issue #5: Recommend the (expected, actual) idiom for calls to the test
51  macros in the manual pages.
52
53* Issue #7: Stopped catching unhandled exceptions in atf-c++ tests.  This
54  propagates the crash to the caller, which in turn allows it to obtain
55  proper debugging information.  In particular, Kyua should now be able to
56  extract a stacktrace pinpointing the problem.
57
58* Issue #8: Fixed atf-c/macros_test:use test failures spotted by the clang
59  that ships with FreeBSD 11.0-CURRENT.
60
61* Issue #12: Improved documentation of atf-sh(3) and atf-check(1) by better
62  explaining how they relate to each other.
63
64* Issue #14: Stopped setting 'set -e' in atf-sh.  This setting was
65  initially added as a way to enable a "strict" mode in the library and to
66  make test cases fail fast when they run unprotected commands.  However,
67  doing so in the library is surprising as the responsibility of enabling
68  'set -e' should be on the user's code.  Also, 'set -e' introduces
69  inconsistent behavior on subshells and users do not expect that.
70
71* Issue #15: Fixed atf_utils_{fork,wait} to support nested calls.
72
73* Issue #16: Fixed test failures (by removing a long-standing hack) on
74  systems that lack \e support in printf(1).
75
76* Issue #19: Removed stale references to atf-config and atf-run.
77
78
79Changes in version 0.20
80***********************
81
82Experimental version released on February 7th, 2014.
83
84This is the first release without the code for the deprecated tools.  If
85you require such code, please fetch a copy of the 0.19 release and extract
86the 'tools' directory for your own consumption.
87
88* Removed the deprecated tools.  This includes atf-config, atf-report,
89  atf-run and atf-version.
90
91* Issue #8: Fixed atf-c/macros_test:use test failures spotted by the clang
92  that ships with FreeBSD 11.0-CURRENT.
93
94
95Changes in version 0.19
96***********************
97
98Experimental version released on February 7th, 2014.
99
100This is the last release to bundle the code for the deprecated tools.
101The next release will drop their code and will stop worrying about
102backwards compatibility between the ATF libraries and what the old tools
103may or may not support.
104
105If you still require the old tools for some reason, grab a copy of the
106'tools' directory now.  The code in this directory is standalone and
107does not depend on any internal details of atf-c++ any longer.
108
109* Various fixes and improvements to support running as part of the FreeBSD
110  test suite.
111
112* Project hosting moved from Google Code (as a subproject of Kyua) to
113  GitHub (as a first-class project).  The main reason for the change is
114  the suppression of binary downloads in Google Code on Jan 15th, 2014.
115  See https://github.com/jmmv/atf/
116
117* Removed builtin help from atf-sh(1) and atf-check(1) for simplicity
118  reasons.  In other words, their -h option is gone.
119
120* Moved the code of the deprecated tools into a 'tools' directory and
121  completely decoupled their code from the internals of atf-c++.  The
122  reason for this is to painlessly allow a third-party to maintain a
123  copy of these tools after we delete them because upcoming changes to
124  atf-c++ would break the stale tools.
125
126
127Changes in version 0.18
128***********************
129
130Experimental version released on November 16th, 2013.
131
132* Issue 45: Added require.memory support in atf-run for FreeBSD.
133
134* Fixed an issue with the handling of cin with libc++.
135
136* Issue 64: Fixed various mandoc formatting warnings.
137
138* NetBSD PR bin/48284: Made atf-check flush its progress message to
139  stdout so that an interrupted test case always shows the last message
140  being executed.
141
142* NetBSD PR bin/48285: Fixed atf_check examples in atf-sh-api(3).
143
144
145Changes in version 0.17
146***********************
147
148Experimental version released on February 14th, 2013.
149
150* Added the atf_utils_cat_file, atf_utils_compare_file,
151  atf_utils_copy_file, atf_utils_create_file, atf_utils_file_exists,
152  atf_utils_fork, atf_utils_grep_file, atf_utils_grep_string,
153  atf_utils_readline, atf_utils_redirect and atf_utils_wait utility
154  functions to atf-c-api.  Documented the already-public
155  atf_utils_free_charpp function.
156
157* Added the cat_file, compare_file, copy_file, create_file, file_exists,
158  fork, grep_collection, grep_file, grep_string, redirect and wait
159  functions to the atf::utils namespace of atf-c++-api.  These are
160  wrappers around the same functions added to the atf-c-api library.
161
162* Added the ATF_CHECK_MATCH, ATF_CHECK_MATCH_MSG, ATF_REQUIRE_MATCH and
163  ATF_REQUIRE_MATCH_MSG macros to atf-c to simplify the validation of a
164  string against a regular expression.
165
166* Miscellaneous fixes for manpage typos and compilation problems with
167  clang.
168
169* Added caching of the results of those configure tests that rely on
170  executing a test program.  This should help crossbuild systems by
171  providing a mechanism to pre-specify what the results should be.
172
173* PR bin/45690: Make atf-report convert any non-printable characters to
174  a plain-text representation (matching their corresponding hexadecimal
175  entities) in XML output files.  This is to prevent the output of test
176  cases from breaking xsltproc later.
177
178
179Changes in version 0.16
180***********************
181
182Experimental version released on July 10th, 2012.
183
184* Added a --enable-tools flag to configure to request the build of the
185  deprecated ATF tools, whose build is now disabled by default.  In order
186  to continue running tests, you should migrate to Kyua instead of enabling
187  the build of the deprecated tools.  The kyua-atf-compat package provides
188  transitional compatibility versions of atf-run and atf-report built on
189  top of Kyua.
190
191* Tweaked the ATF_TEST_CASE macro of atf-c++ so that the compiler can
192  detect defined but unused test cases.
193
194* PR bin/45859: Fixed some XSLT bugs that resulted in the tc-time and
195  tp-time XML tags leaking into the generated HTML file.  Also improved
196  the CSS file slightly to correct alignment and color issues with the
197  timestamps column.
198
199* Optimized atf-c++/macros.hpp so that GNU G++ consumes less memory during
200  compilation with GNU G++.
201
202* Flipped the default to building shared libraries for atf-c and atf-c++,
203  and started versioning them.  As a side-effect, this removes the
204  --enable-unstable-shared flag from configure that appears to not work any
205  more (under NetBSD).  Additionally, some distributions require the use of
206  shared libraries for proper dependency tracking (e.g. Fedora), so it is
207  better if we do the right versioning upstream.
208
209* Project hosting moved from an adhoc solution (custom web site and
210  Monotone repository) to Google Code (standard wiki and Git).  ATF now
211  lives in a subcomponent of the Kyua project.
212
213
214Changes in version 0.15
215***********************
216
217Experimental version released on January 16th, 2012.
218
219* Respect stdin in atf-check.  The previous release silenced stdin for any
220  processes spawned by atf, not only test programs, which caused breakage
221  in tests that pipe data through atf-check.
222
223* Performance improvements to atf-sh.
224
225* Enabled detection of unused parameters and variables in the code and
226  fixed all warnings.
227
228* Changed the behavior of "developer mode".  Compiler warnings are now
229  enabled unconditionally regardless of whether we are in developer mode or
230  not; developer mode is now only used to perform strict warning checks and
231  to enable assertions.  Additionally, developer mode is now only
232  automatically enabled when building from the repository, not for formal
233  releases.
234
235* Added new Autoconf M4 macros (ATF_ARG_WITH, ATF_CHECK_C and
236  ATF_CHECK_CXX) to provide a consistent way of defining a --with-arg flag
237  in configure scripts and detecting the presence of any of the ATF
238  bindings.  Note that ATF_CHECK_SH was already introduced in 0.14, but it
239  has now been modified to also honor --with-atf if instantiated.
240
241* Added timing support to atf-run / atf-report.
242
243* Added support for a 'require.memory' property, to specify the minimum
244  amount of physical memory needed by the test case to yield valid results.
245
246* PR bin/45690: Force an ISO-8859-1 encoding in the XML files generated by
247  atf-report so that invalid data in the output of test cases does not
248  mangle our report.
249
250
251Changes in version 0.14
252***********************
253
254Experimental version released on June 14th, 2011.
255
256* Added a pkg-config file for atf-sh and an aclocal file to ease the
257  detection of atf-sh from autoconf scripts.
258
259* Made the default test case body defined by atf_sh fail.  This is to
260  ensure that test cases are properly defined in test programs and helps
261  in catching typos in the names of the body functions.
262
263* PR bin/44882: Made atf-run connect the stdin of test cases to /dev/zero.
264  This provides more consistent results with "normal" execution (in
265  particular, when tests are executed detached from a terminal).
266
267* Made atf-run hardcode TZ=UTC for test cases.  It used to undefine TZ, but
268  that does not take into account that libc determines the current timezone
269  from a configuration file.
270
271* All test programs will now print a warning when they are not run through
272  atf-run(1) stating that this is unsupported and may deliver incorrect
273  results.
274
275* Added support for the 'require.files' test-case property.  This allows
276  test cases to specify installed files that must be present for the test
277  case to run.
278
279
280Changes in version 0.13
281***********************
282
283Experimental version released on March 31st, 2011.
284
285This is the first release after the creation of the Kyua project, a more
286modular and reliable replacement for ATF.  From now on, ATF will change to
287accomodate the transition to this new codebase, but ATF will still continue
288to see development in the short/medium term.  Check out the project page at
289http://code.google.com/p/kyua/ for more details.
290
291The changes in this release are:
292
293* Added support to run the tests with the Kyua runtime engine (kyua-cli), a
294  new package that aims to replace atf-run and atf-report.  The ATF tests
295  can be run with the new system by issuing a 'make installcheck-kyua' from
296  the top-level directory of the project (assuming the 'kyua' binary is
297  available during the configuration stage of ATF).
298
299* atf-run and atf-report are now in maintenance mode (but *not* deprecated
300  yet!).  Kyua already implements a new, much more reliable runtime engine
301  that provides similar features to these tools.  That said, it is not
302  complete yet so all development efforts should go towards it.
303
304* If GDB is installed, atf-run dumps the stack trace of crashing test
305  programs in an attempt to aid debugging.  Contributed by Antti Kantee.
306
307* Reverted default timeout change in previous release and reset its value
308  to 5 minutes.  This was causing several issues, specially when running
309  the existing NetBSD test suite in qemu.
310
311* Fixed the 'match' output checker in atf-check to properly validate the
312  last line of a file even if it does not have a newline.
313
314* Added the ATF_REQUIRE_IN and ATF_REQUIRE_NOT_IN macros to atf-c++ to
315  check for the presence (or lack thereof) of an element in a collection.
316
317* PR bin/44176: Fixed a race condition in atf-run that would crash atf-run
318  when the cleanup of a test case triggered asynchronous modifications to
319  its work directory (e.g. killing a daemon process that cleans up a pid
320  file in the work directory).
321
322* PR bin/44301: Fixed the sample XSLT file to report bogus test programs
323  instead of just listing them as having 0 test cases.
324
325
326Changes in version 0.12
327***********************
328
329Experimental version released on November 7th, 2010.
330
331* Added the ATF_REQUIRE_THROW_RE to atf-c++, which is the same as
332  ATF_REQUIRE_THROW but allows checking for the validity of the exception's
333  error message by means of a regular expression.
334
335* Added the ATF_REQUIRE_MATCH to atf-c++, which allows checking for a
336  regular expression match in a string.
337
338* Changed the default timeout for test cases from 5 minutes to 30 seconds.
339  30 seconds is long enough for virtually all tests to complete, and 5
340  minutes is a way too long pause in a test suite where a single test case
341  stalls.
342
343* Deprecated the use.fs property.  While this seemed like a good idea in
344  the first place to impose more control on what test cases can do, it
345  turns out to be bad.  First, use.fs=false prevents bogus test cases
346  from dumping core so after-the-fact debugging is harder.  Second,
347  supporting use.fs adds a lot of unnecessary complexity.  atf-run will
348  now ignore any value provided to use.fs and will allow test cases to
349  freely access the file system if they wish to.
350
351* Added the atf_tc_get_config_var_as_{bool,long}{,_wd} functions to the atf-c
352  library.  The 'text' module became private in 0.11 but was being used
353  externally to simplify the parsing of configuration variables.
354
355* Made atf-run recognize the 'unprivileged-user' configuration variable
356  and automatically drop root privileges when a test case sets
357  require.user=unprivileged.  Note that this is, by no means, done for
358  security purposes; this is just for user convenience; tests should, in
359  general, not be blindly run as root in the first place.
360
361
362Changes in version 0.11
363***********************
364
365Experimental version released on October 20th, 2010.
366
367* The ATF_CHECK* macros in atf-c++ were renamed to ATF_REQUIRE* to match
368  their counterparts in atf-c.
369
370* Clearly separated the modules in atf-c that are supposed to be public
371  from those that are implementation details.  The header files for the
372  internal modules are not installed any more.
373
374* Made the atf-check tool private.  It is only required by atf-sh and being
375  public has the danger of causing confusion.  Also, making it private
376  simplifies the public API of atf.
377
378* Changed atf-sh to enable per-command error checking (set -e) by default.
379  This catches many cases in which a test case is broken but it is not
380  reported as such because execution continues.
381
382* Fixed the XSTL and CSS stylesheets to support expected failures.
383
384
385Changes in version 0.10
386***********************
387
388Experimental version released on July 2nd, 2010.
389
390Miscellaneous features
391
392* Added expected failures support to test cases and atf-run.  These
393  include, for example, expected clean exits, expected reception of fatal
394  signals, expected timeouts and expected errors in condition checks.
395  These statuses can be used to denote test cases that are known to fail
396  due to a bug in the code they are testing.  atf-report reports these
397  tests separately but they do not count towards the failed test cases
398  amount.
399
400* Added the ATF_CHECK_ERRNO and ATF_REQUIRE_ERRNO to the C library to
401  allow easy checking of call failures that update errno.
402
403* Added the has.cleanup meta-data property to test caes that specifies
404  whether the test case has a cleanup routine or not; its value is
405  automatically set.  This property is read by atf-run to know if it has to
406  run the cleanup routine; skipping this run for every test case
407  significantly speeds up the run time of test suites.
408
409* Reversed the order of the ATF_CHECK_THROW macro in the C++ binding to
410  take the expected exception as the first argument and the statement to
411  execute as the second argument.
412
413Changes in atf-check
414
415* Changed atf-check to support negating the status and output checks by
416  prefixing them with not- and added support to specify multiple checkers
417  for stdout and stderr, not only one.
418
419* Added the match output checker to atf-check to look for regular
420  expressions in the stdout and stderr of commands.
421
422* Modified the exit checks in atf-check to support checking for the
423  reception of signals.
424
425Code simplifications and cleanups
426
427* Removed usage messages from test programs to simplify the
428  implementation of every binding by a significant amount.  They just now
429  refer the user to the appropriate manual page and do not attempt to wrap
430  lines on terminal boundaries.  Test programs are not supposed to be run
431  by users directly so this minor interface regression is not important.
432
433* Removed the atf-format internal utility, which is unused after the
434  change documented above.
435
436* Removed the atf-cleanup internal utility.  It has been unused since the
437  test case isolation was moved to atf-run in 0.8
438
439* Splitted the Makefile.am into smaller files for easier maintenance and
440  dropped the use of M4.  Only affects users building from the repository
441  sources.
442
443* Intermixed tests with the source files in the source tree to provide
444  them more visibility and easier access.  The tests directory is gone from
445  the source tree and tests are now suffixed by _test, not prefixed by t_.
446
447* Simplifications to the atf-c library: removed the io, tcr and ui
448  modules as they had become unnecessary after all simplifications
449  introduced since the 0.8 release.
450
451* Removed the application/X-atf-tcr format introduced in 0.8 release.
452  Tests now print a much simplified format that is easy to parse and nicer
453  to read by end users.  As a side effect, the default for test cases is
454  now to print their results to stdout unless otherwise stated by providing
455  the -r flag.
456
457* Removed XML distribution documents and replaced them with plain-text
458  documents.  They provided little value and introduced a lot of complexity
459  to the build system.
460
461* Simplified the output of atf-version by not attempting to print a
462  revision number when building form a distfile.  Makes the build system
463  easier to maintain.
464
465
466Changes in version 0.9
467**********************
468
469Experimental version released on June 3rd, 2010.
470
471* Added atf-sh, an interpreter to process test programs written using
472  the shell API.  This is not really a shell interpreter by itself though:
473  it is just a wrapper around the system shell that eases the loading of
474  the necessary ATF libraries.
475
476* Removed atf-compile in favour of atf-sh.
477
478* Added the use.fs metadata property to test case, which is used to
479  specify which test cases require file system access.  This is to
480  highlight dependencies on external resources more clearly and to speed up
481  the execution of test suites by skipping the creation of many unnecessary
482  work directories.
483
484* Fixed test programs to get a sane default value for their source
485  directory.  This means that it should not be necessary any more to pass
486  -s when running test programs that do not live in the current directory.
487
488* Defining test case headers became optional.  This is trivial to achieve
489  in shell-based tests but a bit ugly in C and C++.  In C, use the new
490  ATF_TC_WITHOUT_HEAD macro to define the test case, and in C++ use
491  ATF_TEST_CASE_WITHOUT_HEAD.
492
493
494Changes in version 0.8
495**********************
496
497Experimental version released on May 7th, 2010.
498
499* Test programs no longer run several test cases in a row.  The execution
500  of a test program now requires a test case name, and that single test
501  case is executed.  To execute several test cases, use the atf-run utility
502  as usual.
503
504* Test programs no longer fork a subprocess to isolate the execution of
505  test cases.  They run the test case code in-process, and a crash of the
506  test case will result in a crash of the test program.  This is to ease
507  debugging of faulty test cases.
508
509* Test programs no longer isolate their test cases.  This means that they
510  will not create temporary directories nor sanitize the environment any
511  more.  Yes: running a test case that depends on system state by hand will
512  most likely yield different results depending on where (machine,
513  directory, user environment, etc.) it is run.  Isolation has been moved
514  to atf-run.
515
516* Test programs no longer print a cryptic format (application/X-atf-tcs)
517  on a special file channel.  They can now print whatever they want on the
518  screen.  Because test programs can now only run one test case every time,
519  providing controlled output is not necessary any more.
520
521* Test programs no longer write their status into a special file
522  descriptor.  Instead, they create a file with the results, which is later
523  parsed by atf-run.  This changes the semantics of the -r flag.
524
525* atf-run has been adjusted to perform the test case isolation.  As a
526  result, there is now a single canonical place that implements the
527  isolation of test caes.  In previous releases, the three language
528  bindings (C, C++ and shell) had to be kept in sync with each other (read:
529  not a nice thing to do at all).  As a side effect of this change, writing
530  bindings for other languages will be much, much easier from now on.
531
532* atf-run forks test programs on a test case basis, instead of on a test
533  program basis as it did before.  This is to provide the test case
534  isolation that was before implemented by the test programs themselves.
535
536* Removed the atf-exec tool.  This was used to implement test case
537  isolation in atf-sh, but it is now unnecessary.
538
539* It is now optional to define the descr meta-data property.  It has been
540  proven to be mostly useless, because test cases often carry a descriptive
541  name of their own.
542
543
544Changes in version 0.7
545**********************
546
547Experimental version released on December 22nd, 2009.
548
549* Added build-time checks to atf-c and atf-c++.  A binding for atf-sh
550  will come later.
551
552* Migrated all build-time checks for header files to proper ATF tests.
553  This demonstrates the use of the new feature described above.
554
555* Added an internal API for child process management.
556
557* Converted all plain-text distribution documents to a Docbook canonical
558  version, and include pre-generated plain text and HTML copies in the
559  distribution file.
560
561* Simplified the contents of the Makefile.am by regenerating it from a
562  canonical Makefile.am.m4 source.  As a side-effect, some dependency
563  specifications were fixed.
564
565* Migrated all checks from the check target to installcheck, as these
566  require ATF to be installed.
567
568* Fixed sign comparison mismatches triggered by the now-enabled
569  -Wsign-compare.
570
571* Fixed many memory and object leaks.
572
573
574Changes in version 0.6
575**********************
576
577Experimental version released on January 18th, 2009.
578
579* Make atf-exec be able to kill its child process after a certain period
580  of time; this is controlled through the new -t option.
581
582* Change atf-sh to use atf-exec's -t option to control the test case's
583  timeouts, instead of doing it internally.  Same behavior as before, but
584  noticeably faster.
585
586* atf-exec's -g option and atf-killpg are gone due to the previous
587  change.
588
589* Added the atf-check(1) tool, a program that executes a given command
590  and checks its exit code against a known value and allows the management
591  of stdout and stderr in multiple ways.  This replaces the previous
592  atf_check function in the atf-sh library and exposes this functionality
593  to both atf-c and atf-c++.
594
595* Added the ATF_REQUIRE family of macros to the C interface.  These help
596  in checking for fatal test conditions.  The old ATF_CHECK macros now
597  perform non-fatal checks only.  I.e. by using ATF_CHECK, the test case
598  can now continue its execution and the failures will not be reported
599  until the end of the whole run.
600
601* Extended the amount of ATF_CHECK_* C macros with new ones to provide
602  more features to the developer.  These also have their corresponding
603  counterparts in the ATF_REQUIRE_* family.  The new macros (listing the
604  suffixes only) are: _EQ (replaces _EQUAL), _EQ_MSG, _STREQ and
605  _STREQ_MSG.
606
607
608Changes in version 0.5
609**********************
610
611Experimental version released on May 1st, 2008.
612
613* Clauses 3 and 4 of the BSD license used by the project were dropped.
614  All the code is now under a 2-clause BSD license compatible with the GNU
615  General Public License (GPL).
616
617* Added a C-only binding so that binary test programs do not need to be
618  tied to C++ at all.  This binding is now known as the atf-c library.
619
620* Renamed the C++ binding to atf-c++ for consistency with the new atf-c.
621
622* Renamed the POSIX shell binding to atf-sh for consistency with the new
623  atf-c and atf-c++.
624
625* Added a -w flag to test programs through which it is possible to
626  specify the work directory to be used.  This was possible in prior
627  releases by defining the workdir configuration variable (-v workdir=...),
628  but was a conceptually incorrect mechanism.
629
630* Test programs now preserve the execution order of test cases when they
631  are given in the command line.  Even those mentioned more than once are
632  executed multiple times to comply with the user's requests.
633
634
635Changes in version 0.4
636**********************
637
638Experimental version released on February 4th, 2008.
639
640* Added two new manual pages, atf-c++-api and atf-sh-api, describing the
641  C++ and POSIX shell interfaces used to write test programs.
642
643* Added a pkg-config file, useful to get the flags to build against the
644  C++ library or to easily detect the presence of ATF.
645
646* Added a way for test cases to require a specific architecture and/or
647  machine type through the new 'require.arch' and 'require.machine'
648  meta-data properties, respectively.
649
650* Added the 'timeout' property to test cases, useful to set an
651  upper-bound limit for the test's run time and thus prevent global test
652  program stalls due to the test case's misbehavior.
653
654* Added the atf-exec(1) internal utility, used to execute a command
655  after changing the process group it belongs to.
656
657* Added the atf-killpg(1) internal utility, used to kill process groups.
658
659* Multiple portability fixes.  Of special interest, full support for
660  SunOS (Solaris Express Developer Edition 2007/09) using the Sun Studio 12
661  C++ compiler.
662
663* Fixed a serious bug that prevented atf-run(1) from working at all
664  under Fedora 8 x86_64.  Due to the nature of the bug, other platforms
665  were likely affected too.
666
667
668Changes in version 0.3
669**********************
670
671Experimental version released on November 11th, 2007.
672
673* Added XML output support to atf-report.  This is accompanied by a DTD
674  for the format's structure and sample XSLT/CSS files to post-process this
675  output and convert it to a plain HTML report.
676
677* Changed atf-run to add system information to the report it generates.
678  This is currently used by atf-report's XML output only, and is later
679  printed in the HTML reports in a nice and useful summary table.  The user
680  and system administrator are allowed to tune this feature by means of
681  hooks.
682
683* Removed the test cases' 'isolated' property.  This was intended to
684  avoid touching the file system at all when running the related test case,
685  but this has not been true for a long while: some control files are
686  unconditionally required for several purposes, and we cannot easily get
687  rid of them.  This way we remove several critical and delicate pieces of
688  code.
689
690* Improved atf-report's CSV output format to include information about
691  test programs too.
692
693* Fixed the tests that used atf-compile to not require this tool as a
694  helper.  Avoids systems without build-time utilities to skip many tests
695  that could otherwise be run.  (E.g. NetBSD without the comp.tgz set
696  installed.)
697
698* Many general cleanups: Fixed many pieces of code marked as ugly and/or
699  incomplete.
700
701
702Changes in version 0.2
703**********************
704
705Experimental version released on September 20th, 2007.
706
707* Test cases now get a known umask on entry.
708
709* atf-run now detects many unexpected failures caused by test programs and
710  reports them as bogus tests.  atf-report is able to handle these new
711  errors and nicely reports them to the user.
712
713* All the data formats read and written by the tools have been
714  documented and cleaned up.  These include those grammars that define how
715  the different components communicate with each other as well as the
716  format of files written by the developers and users: the Atffiles and the
717  configuration files.
718
719* Added the atf-version tool, a utility that displays information about
720  the currently installed version of ATF.
721
722* Test cases can now define an optional cleanup routine to undo their
723  actions regardless of their exit status.
724
725* atf-report now summarizes the list of failed (bogus) test programs
726  when using the ticker output format.
727
728* Test programs now capture some termination signals and clean up any
729  temporary files before exiting the program.
730
731* Multiple bug fixes and improvements all around.
732
733
734Changes in version 0.1
735**********************
736
737Experimental version released on August 20th, 2007.
738
739* First public version.  This was released coinciding with the end of the
740  Google Summer of Code 2007 program.
741
742
743===========================================================================
744vim: filetype=text:textwidth=75:expandtab:shiftwidth=2:softtabstop=2
745