1edebbb8eSjmmvMajor changes between releases Automated Testing Framework 2edebbb8eSjmmv=========================================================================== 3e2207522Sjmmv 4e2207522Sjmmv 5*4e036686SjmmvChanges in version 0.16 6*4e036686Sjmmv*********************** 7*4e036686Sjmmv 8*4e036686SjmmvExperimental version released on July 10th, 2012. 9*4e036686Sjmmv 10*4e036686Sjmmv* Added a --enable-tools flag to configure to request the build of the 11*4e036686Sjmmv deprecated ATF tools, whose build is now disabled by default. In order 12*4e036686Sjmmv to continue running tests, you should migrate to Kyua instead of enabling 13*4e036686Sjmmv the build of the deprecated tools. The kyua-atf-compat package provides 14*4e036686Sjmmv transitional compatibility versions of atf-run and atf-report built on 15*4e036686Sjmmv top of Kyua. 16*4e036686Sjmmv 17*4e036686Sjmmv* Tweaked the ATF_TEST_CASE macro of atf-c++ so that the compiler can 18*4e036686Sjmmv detect defined but unused test cases. 19*4e036686Sjmmv 20*4e036686Sjmmv* PR bin/45859: Fixed some XSLT bugs that resulted in the tc-time and 21*4e036686Sjmmv tp-time XML tags leaking into the generated HTML file. Also improved 22*4e036686Sjmmv the CSS file slightly to correct alignment and color issues with the 23*4e036686Sjmmv timestamps column. 24*4e036686Sjmmv 25*4e036686Sjmmv* Optimized atf-c++/macros.hpp so that GNU G++ consumes less memory during 26*4e036686Sjmmv compilation with GNU G++. 27*4e036686Sjmmv 28*4e036686Sjmmv* Flipped the default to building shared libraries for atf-c and atf-c++, 29*4e036686Sjmmv and started versioning them. As a side-effect, this removes the 30*4e036686Sjmmv --enable-unstable-shared flag from configure that appears to not work any 31*4e036686Sjmmv more (under NetBSD). Additionally, some distributions require the use of 32*4e036686Sjmmv shared libraries for proper dependency tracking (e.g. Fedora), so it is 33*4e036686Sjmmv better if we do the right versioning upstream. 34*4e036686Sjmmv 35*4e036686Sjmmv* Project hosting moved from an adhoc solution (custom web site and 36*4e036686Sjmmv Monotone repository) to Google Code (standard wiki and Git). ATF now 37*4e036686Sjmmv lives in a subcomponent of the Kyua project. 38*4e036686Sjmmv 39*4e036686Sjmmv 40a551a20fSjmmvChanges in version 0.15 41a551a20fSjmmv*********************** 42a551a20fSjmmv 43a551a20fSjmmvExperimental version released on January 16th, 2012. 44a551a20fSjmmv 45a551a20fSjmmv* Respect stdin in atf-check. The previous release silenced stdin for any 46a551a20fSjmmv processes spawned by atf, not only test programs, which caused breakage 47a551a20fSjmmv in tests that pipe data through atf-check. 48a551a20fSjmmv 49a551a20fSjmmv* Performance improvements to atf-sh. 50a551a20fSjmmv 51a551a20fSjmmv* Enabled detection of unused parameters and variables in the code and 52a551a20fSjmmv fixed all warnings. 53a551a20fSjmmv 54a551a20fSjmmv* Changed the behavior of "developer mode". Compiler warnings are now 55a551a20fSjmmv enabled unconditionally regardless of whether we are in developer mode or 56a551a20fSjmmv not; developer mode is now only used to perform strict warning checks and 57a551a20fSjmmv to enable assertions. Additionally, developer mode is now only 58a551a20fSjmmv automatically enabled when building from the repository, not for formal 59a551a20fSjmmv releases. 60a551a20fSjmmv 61a551a20fSjmmv* Added new Autoconf M4 macros (ATF_ARG_WITH, ATF_CHECK_C and 62a551a20fSjmmv ATF_CHECK_CXX) to provide a consistent way of defining a --with-arg flag 63a551a20fSjmmv in configure scripts and detecting the presence of any of the ATF 64a551a20fSjmmv bindings. Note that ATF_CHECK_SH was already introduced in 0.14, but it 65a551a20fSjmmv has now been modified to also honor --with-atf if instantiated. 66a551a20fSjmmv 67a551a20fSjmmv* Added timing support to atf-run / atf-report. 68a551a20fSjmmv 69a551a20fSjmmv* Added support for a 'require.memory' property, to specify the minimum 70a551a20fSjmmv amount of physical memory needed by the test case to yield valid results. 71a551a20fSjmmv 72a551a20fSjmmv* PR bin/45690: Force an ISO-8859-1 encoding in the XML files generated by 73a551a20fSjmmv atf-report so that invalid data in the output of test cases does not 74a551a20fSjmmv mangle our report. 75a551a20fSjmmv 76a551a20fSjmmv 775055cfd6SjmmvChanges in version 0.14 785055cfd6Sjmmv*********************** 795055cfd6Sjmmv 805055cfd6SjmmvExperimental version released on June 14th, 2011. 815055cfd6Sjmmv 825055cfd6Sjmmv* Added a pkg-config file for atf-sh and an aclocal file to ease the 835055cfd6Sjmmv detection of atf-sh from autoconf scripts. 845055cfd6Sjmmv 855055cfd6Sjmmv* Made the default test case body defined by atf_sh fail. This is to 865055cfd6Sjmmv ensure that test cases are properly defined in test programs and helps 875055cfd6Sjmmv in catching typos in the names of the body functions. 885055cfd6Sjmmv 895055cfd6Sjmmv* PR bin/44882: Made atf-run connect the stdin of test cases to /dev/zero. 905055cfd6Sjmmv This provides more consistent results with "normal" execution (in 915055cfd6Sjmmv particular, when tests are executed detached from a terminal). 925055cfd6Sjmmv 935055cfd6Sjmmv* Made atf-run hardcode TZ=UTC for test cases. It used to undefine TZ, but 945055cfd6Sjmmv that does not take into account that libc determines the current timezone 955055cfd6Sjmmv from a configuration file. 965055cfd6Sjmmv 975055cfd6Sjmmv* All test programs will now print a warning when they are not run through 985055cfd6Sjmmv atf-run(1) stating that this is unsupported and may deliver incorrect 995055cfd6Sjmmv results. 1005055cfd6Sjmmv 1015055cfd6Sjmmv* Added support for the 'require.files' test-case property. This allows 1025055cfd6Sjmmv test cases to specify installed files that must be present for the test 1035055cfd6Sjmmv case to run. 1045055cfd6Sjmmv 1055055cfd6Sjmmv 106eb215e31SjmmvChanges in version 0.13 107eb215e31Sjmmv*********************** 108eb215e31Sjmmv 109eb215e31SjmmvExperimental version released on March 31st, 2011. 110eb215e31Sjmmv 111eb215e31SjmmvThis is the first release after the creation of the Kyua project, a more 112eb215e31Sjmmvmodular and reliable replacement for ATF. From now on, ATF will change to 113eb215e31Sjmmvaccomodate the transition to this new codebase, but ATF will still continue 114eb215e31Sjmmvto see development in the short/medium term. Check out the project page at 115eb215e31Sjmmvhttp://code.google.com/p/kyua/ for more details. 116eb215e31Sjmmv 117eb215e31SjmmvThe changes in this release are: 118eb215e31Sjmmv 119eb215e31Sjmmv* Added support to run the tests with the Kyua runtime engine (kyua-cli), a 120eb215e31Sjmmv new package that aims to replace atf-run and atf-report. The ATF tests 121eb215e31Sjmmv can be run with the new system by issuing a 'make installcheck-kyua' from 122eb215e31Sjmmv the top-level directory of the project (assuming the 'kyua' binary is 123eb215e31Sjmmv available during the configuration stage of ATF). 124eb215e31Sjmmv 125eb215e31Sjmmv* atf-run and atf-report are now in maintenance mode (but *not* deprecated 126eb215e31Sjmmv yet!). Kyua already implements a new, much more reliable runtime engine 127eb215e31Sjmmv that provides similar features to these tools. That said, it is not 128eb215e31Sjmmv complete yet so all development efforts should go towards it. 129eb215e31Sjmmv 130eb215e31Sjmmv* If GDB is installed, atf-run dumps the stack trace of crashing test 131eb215e31Sjmmv programs in an attempt to aid debugging. Contributed by Antti Kantee. 132eb215e31Sjmmv 133eb215e31Sjmmv* Reverted default timeout change in previous release and reset its value 134eb215e31Sjmmv to 5 minutes. This was causing several issues, specially when running 135eb215e31Sjmmv the existing NetBSD test suite in qemu. 136eb215e31Sjmmv 137eb215e31Sjmmv* Fixed the 'match' output checker in atf-check to properly validate the 138eb215e31Sjmmv last line of a file even if it does not have a newline. 139eb215e31Sjmmv 140eb215e31Sjmmv* Added the ATF_REQUIRE_IN and ATF_REQUIRE_NOT_IN macros to atf-c++ to 141eb215e31Sjmmv check for the presence (or lack thereof) of an element in a collection. 142eb215e31Sjmmv 143eb215e31Sjmmv* PR bin/44176: Fixed a race condition in atf-run that would crash atf-run 144eb215e31Sjmmv when the cleanup of a test case triggered asynchronous modifications to 145eb215e31Sjmmv its work directory (e.g. killing a daemon process that cleans up a pid 146eb215e31Sjmmv file in the work directory). 147eb215e31Sjmmv 148eb215e31Sjmmv* PR bin/44301: Fixed the sample XSLT file to report bogus test programs 149eb215e31Sjmmv instead of just listing them as having 0 test cases. 150eb215e31Sjmmv 151eb215e31Sjmmv 1520ebb519dSjmmvChanges in version 0.12 1530ebb519dSjmmv*********************** 1540ebb519dSjmmv 1550ebb519dSjmmvExperimental version released on November 7th, 2010. 1560ebb519dSjmmv 1570ebb519dSjmmv* Added the ATF_REQUIRE_THROW_RE to atf-c++, which is the same as 1580ebb519dSjmmv ATF_REQUIRE_THROW but allows checking for the validity of the exception's 1590ebb519dSjmmv error message by means of a regular expression. 1600ebb519dSjmmv 1610ebb519dSjmmv* Added the ATF_REQUIRE_MATCH to atf-c++, which allows checking for a 1620ebb519dSjmmv regular expression match in a string. 1630ebb519dSjmmv 1640ebb519dSjmmv* Changed the default timeout for test cases from 5 minutes to 30 seconds. 1650ebb519dSjmmv 30 seconds is long enough for virtually all tests to complete, and 5 1660ebb519dSjmmv minutes is a way too long pause in a test suite where a single test case 1670ebb519dSjmmv stalls. 1680ebb519dSjmmv 1690ebb519dSjmmv* Deprecated the use.fs property. While this seemed like a good idea in 1700ebb519dSjmmv the first place to impose more control on what test cases can do, it 1710ebb519dSjmmv turns out to be bad. First, use.fs=false prevents bogus test cases 1720ebb519dSjmmv from dumping core so after-the-fact debugging is harder. Second, 1730ebb519dSjmmv supporting use.fs adds a lot of unnecessary complexity. atf-run will 1740ebb519dSjmmv now ignore any value provided to use.fs and will allow test cases to 1750ebb519dSjmmv freely access the file system if they wish to. 1760ebb519dSjmmv 1770ebb519dSjmmv* Added the atf_tc_get_config_var_as_{bool,long}{,_wd} functions to the atf-c 1780ebb519dSjmmv library. The 'text' module became private in 0.11 but was being used 1790ebb519dSjmmv externally to simplify the parsing of configuration variables. 1800ebb519dSjmmv 1810ebb519dSjmmv* Made atf-run recognize the 'unprivileged-user' configuration variable 1820ebb519dSjmmv and automatically drop root privileges when a test case sets 1830ebb519dSjmmv require.user=unprivileged. Note that this is, by no means, done for 1840ebb519dSjmmv security purposes; this is just for user convenience; tests should, in 1850ebb519dSjmmv general, not be blindly run as root in the first place. 1860ebb519dSjmmv 1870ebb519dSjmmv 188895f502bSjmmvChanges in version 0.11 189895f502bSjmmv*********************** 190895f502bSjmmv 191895f502bSjmmvExperimental version released on October 20th, 2010. 192895f502bSjmmv 193895f502bSjmmv* The ATF_CHECK* macros in atf-c++ were renamed to ATF_REQUIRE* to match 194895f502bSjmmv their counterparts in atf-c. 195895f502bSjmmv 196895f502bSjmmv* Clearly separated the modules in atf-c that are supposed to be public 197895f502bSjmmv from those that are implementation details. The header files for the 198895f502bSjmmv internal modules are not installed any more. 199895f502bSjmmv 200895f502bSjmmv* Made the atf-check tool private. It is only required by atf-sh and being 201895f502bSjmmv public has the danger of causing confusion. Also, making it private 202895f502bSjmmv simplifies the public API of atf. 203895f502bSjmmv 204895f502bSjmmv* Changed atf-sh to enable per-command error checking (set -e) by default. 205895f502bSjmmv This catches many cases in which a test case is broken but it is not 206895f502bSjmmv reported as such because execution continues. 207895f502bSjmmv 208895f502bSjmmv* Fixed the XSTL and CSS stylesheets to support expected failures. 209895f502bSjmmv 210895f502bSjmmv 211edebbb8eSjmmvChanges in version 0.10 212edebbb8eSjmmv*********************** 213e2207522Sjmmv 214edebbb8eSjmmvExperimental version released on July 2nd, 2010. 215e2207522Sjmmv 216edebbb8eSjmmvMiscellaneous features 21712aa0b5aSjmmv 218edebbb8eSjmmv* Added expected failures support to test cases and atf-run. These 219edebbb8eSjmmv include, for example, expected clean exits, expected reception of fatal 220edebbb8eSjmmv signals, expected timeouts and expected errors in condition checks. 221edebbb8eSjmmv These statuses can be used to denote test cases that are known to fail 222edebbb8eSjmmv due to a bug in the code they are testing. atf-report reports these 223edebbb8eSjmmv tests separately but they do not count towards the failed test cases 224edebbb8eSjmmv amount. 22512aa0b5aSjmmv 226edebbb8eSjmmv* Added the ATF_CHECK_ERRNO and ATF_REQUIRE_ERRNO to the C library to 227edebbb8eSjmmv allow easy checking of call failures that update errno. 22812aa0b5aSjmmv 229edebbb8eSjmmv* Added the has.cleanup meta-data property to test caes that specifies 230edebbb8eSjmmv whether the test case has a cleanup routine or not; its value is 231edebbb8eSjmmv automatically set. This property is read by atf-run to know if it has to 232edebbb8eSjmmv run the cleanup routine; skipping this run for every test case 233edebbb8eSjmmv significantly speeds up the run time of test suites. 23412aa0b5aSjmmv 235edebbb8eSjmmv* Reversed the order of the ATF_CHECK_THROW macro in the C++ binding to 236edebbb8eSjmmv take the expected exception as the first argument and the statement to 237edebbb8eSjmmv execute as the second argument. 23812aa0b5aSjmmv 239edebbb8eSjmmvChanges in atf-check 240407d7761Sjmmv 241edebbb8eSjmmv* Changed atf-check to support negating the status and output checks by 242edebbb8eSjmmv prefixing them with not- and added support to specify multiple checkers 243edebbb8eSjmmv for stdout and stderr, not only one. 2449b3149ccSjmmv 245edebbb8eSjmmv* Added the match output checker to atf-check to look for regular 246edebbb8eSjmmv expressions in the stdout and stderr of commands. 247edebbb8eSjmmv 248edebbb8eSjmmv* Modified the exit checks in atf-check to support checking for the 249edebbb8eSjmmv reception of signals. 250edebbb8eSjmmv 251edebbb8eSjmmvCode simplifications and cleanups 252edebbb8eSjmmv 253edebbb8eSjmmv* Removed usage messages from test programs to simplify the 254edebbb8eSjmmv implementation of every binding by a significant amount. They just now 255edebbb8eSjmmv refer the user to the appropriate manual page and do not attempt to wrap 256edebbb8eSjmmv lines on terminal boundaries. Test programs are not supposed to be run 257edebbb8eSjmmv by users directly so this minor interface regression is not important. 258edebbb8eSjmmv 259edebbb8eSjmmv* Removed the atf-format internal utility, which is unused after the 260edebbb8eSjmmv change documented above. 261edebbb8eSjmmv 262edebbb8eSjmmv* Removed the atf-cleanup internal utility. It has been unused since the 263edebbb8eSjmmv test case isolation was moved to atf-run in 0.8 264edebbb8eSjmmv 265edebbb8eSjmmv* Splitted the Makefile.am into smaller files for easier maintenance and 266edebbb8eSjmmv dropped the use of M4. Only affects users building from the repository 267edebbb8eSjmmv sources. 268edebbb8eSjmmv 269edebbb8eSjmmv* Intermixed tests with the source files in the source tree to provide 270edebbb8eSjmmv them more visibility and easier access. The tests directory is gone from 271edebbb8eSjmmv the source tree and tests are now suffixed by _test, not prefixed by t_. 272edebbb8eSjmmv 273edebbb8eSjmmv* Simplifications to the atf-c library: removed the io, tcr and ui 274edebbb8eSjmmv modules as they had become unnecessary after all simplifications 275edebbb8eSjmmv introduced since the 0.8 release. 276edebbb8eSjmmv 277edebbb8eSjmmv* Removed the application/X-atf-tcr format introduced in 0.8 release. 278edebbb8eSjmmv Tests now print a much simplified format that is easy to parse and nicer 279edebbb8eSjmmv to read by end users. As a side effect, the default for test cases is 280edebbb8eSjmmv now to print their results to stdout unless otherwise stated by providing 281edebbb8eSjmmv the -r flag. 282edebbb8eSjmmv 283edebbb8eSjmmv* Removed XML distribution documents and replaced them with plain-text 284edebbb8eSjmmv documents. They provided little value and introduced a lot of complexity 285edebbb8eSjmmv to the build system. 286edebbb8eSjmmv 287edebbb8eSjmmv* Simplified the output of atf-version by not attempting to print a 288edebbb8eSjmmv revision number when building form a distfile. Makes the build system 289edebbb8eSjmmv easier to maintain. 290edebbb8eSjmmv 2919b3149ccSjmmv 2929b3149ccSjmmvChanges in version 0.9 293edebbb8eSjmmv********************** 2949b3149ccSjmmv 2959b3149ccSjmmvExperimental version released on June 3rd, 2010. 2969b3149ccSjmmv 2979b3149ccSjmmv* Added atf-sh, an interpreter to process test programs written using 298edebbb8eSjmmv the shell API. This is not really a shell interpreter by itself though: 299edebbb8eSjmmv it is just a wrapper around the system shell that eases the loading of 300edebbb8eSjmmv the necessary ATF libraries. 3019b3149ccSjmmv 3029b3149ccSjmmv* Removed atf-compile in favour of atf-sh. 3039b3149ccSjmmv 3049b3149ccSjmmv* Added the use.fs metadata property to test case, which is used to 3059b3149ccSjmmv specify which test cases require file system access. This is to 306edebbb8eSjmmv highlight dependencies on external resources more clearly and to speed up 307edebbb8eSjmmv the execution of test suites by skipping the creation of many unnecessary 308edebbb8eSjmmv work directories. 3099b3149ccSjmmv 3109b3149ccSjmmv* Fixed test programs to get a sane default value for their source 3119b3149ccSjmmv directory. This means that it should not be necessary any more to pass 312edebbb8eSjmmv -s when running test programs that do not live in the current directory. 3139b3149ccSjmmv 3149b3149ccSjmmv* Defining test case headers became optional. This is trivial to achieve 3159b3149ccSjmmv in shell-based tests but a bit ugly in C and C++. In C, use the new 3169b3149ccSjmmv ATF_TC_WITHOUT_HEAD macro to define the test case, and in C++ use 3179b3149ccSjmmv ATF_TEST_CASE_WITHOUT_HEAD. 318407d7761Sjmmv 319edebbb8eSjmmv 320407d7761SjmmvChanges in version 0.8 321edebbb8eSjmmv********************** 322407d7761Sjmmv 323407d7761SjmmvExperimental version released on May 7th, 2010. 324407d7761Sjmmv 325407d7761Sjmmv* Test programs no longer run several test cases in a row. The execution 326407d7761Sjmmv of a test program now requires a test case name, and that single test 327edebbb8eSjmmv case is executed. To execute several test cases, use the atf-run utility 328edebbb8eSjmmv as usual. 329407d7761Sjmmv 330407d7761Sjmmv* Test programs no longer fork a subprocess to isolate the execution of 331407d7761Sjmmv test cases. They run the test case code in-process, and a crash of the 332407d7761Sjmmv test case will result in a crash of the test program. This is to ease 333407d7761Sjmmv debugging of faulty test cases. 334407d7761Sjmmv 335407d7761Sjmmv* Test programs no longer isolate their test cases. This means that they 336407d7761Sjmmv will not create temporary directories nor sanitize the environment any 337edebbb8eSjmmv more. Yes: running a test case that depends on system state by hand will 338edebbb8eSjmmv most likely yield different results depending on where (machine, 339407d7761Sjmmv directory, user environment, etc.) it is run. Isolation has been moved 340407d7761Sjmmv to atf-run. 341407d7761Sjmmv 342407d7761Sjmmv* Test programs no longer print a cryptic format (application/X-atf-tcs) 343edebbb8eSjmmv on a special file channel. They can now print whatever they want on the 344edebbb8eSjmmv screen. Because test programs can now only run one test case every time, 345edebbb8eSjmmv providing controlled output is not necessary any more. 346407d7761Sjmmv 347407d7761Sjmmv* Test programs no longer write their status into a special file 348edebbb8eSjmmv descriptor. Instead, they create a file with the results, which is later 349edebbb8eSjmmv parsed by atf-run. This changes the semantics of the -r flag. 350407d7761Sjmmv 351407d7761Sjmmv* atf-run has been adjusted to perform the test case isolation. As a 352407d7761Sjmmv result, there is now a single canonical place that implements the 353407d7761Sjmmv isolation of test caes. In previous releases, the three language 354edebbb8eSjmmv bindings (C, C++ and shell) had to be kept in sync with each other (read: 355edebbb8eSjmmv not a nice thing to do at all). As a side effect of this change, writing 356edebbb8eSjmmv bindings for other languages will be much, much easier from now on. 357407d7761Sjmmv 358407d7761Sjmmv* atf-run forks test programs on a test case basis, instead of on a test 359407d7761Sjmmv program basis as it did before. This is to provide the test case 360407d7761Sjmmv isolation that was before implemented by the test programs themselves. 361407d7761Sjmmv 362407d7761Sjmmv* Removed the atf-exec tool. This was used to implement test case 363407d7761Sjmmv isolation in atf-sh, but it is now unnecessary. 364407d7761Sjmmv 365407d7761Sjmmv* It is now optional to define the descr meta-data property. It has been 366edebbb8eSjmmv proven to be mostly useless, because test cases often carry a descriptive 367edebbb8eSjmmv name of their own. 368edebbb8eSjmmv 36912aa0b5aSjmmv 37012aa0b5aSjmmvChanges in version 0.7 371edebbb8eSjmmv********************** 37212aa0b5aSjmmv 37312aa0b5aSjmmvExperimental version released on December 22nd, 2009. 37412aa0b5aSjmmv 37512aa0b5aSjmmv* Added build-time checks to atf-c and atf-c++. A binding for atf-sh 37612aa0b5aSjmmv will come later. 37712aa0b5aSjmmv 37812aa0b5aSjmmv* Migrated all build-time checks for header files to proper ATF tests. 37912aa0b5aSjmmv This demonstrates the use of the new feature described above. 38012aa0b5aSjmmv 38112aa0b5aSjmmv* Added an internal API for child process management. 38212aa0b5aSjmmv 38312aa0b5aSjmmv* Converted all plain-text distribution documents to a Docbook canonical 38412aa0b5aSjmmv version, and include pre-generated plain text and HTML copies in the 38512aa0b5aSjmmv distribution file. 38612aa0b5aSjmmv 38712aa0b5aSjmmv* Simplified the contents of the Makefile.am by regenerating it from a 38812aa0b5aSjmmv canonical Makefile.am.m4 source. As a side-effect, some dependency 38912aa0b5aSjmmv specifications were fixed. 39012aa0b5aSjmmv 39112aa0b5aSjmmv* Migrated all checks from the check target to installcheck, as these 39212aa0b5aSjmmv require ATF to be installed. 39312aa0b5aSjmmv 39412aa0b5aSjmmv* Fixed sign comparison mismatches triggered by the now-enabled 39512aa0b5aSjmmv -Wsign-compare. 39612aa0b5aSjmmv 39712aa0b5aSjmmv* Fixed many memory and object leaks. 39812aa0b5aSjmmv 399edebbb8eSjmmv 40012aa0b5aSjmmvChanges in version 0.6 401edebbb8eSjmmv********************** 40212aa0b5aSjmmv 40312aa0b5aSjmmvExperimental version released on January 18th, 2009. 40412aa0b5aSjmmv 40512aa0b5aSjmmv* Make atf-exec be able to kill its child process after a certain period 40612aa0b5aSjmmv of time; this is controlled through the new -t option. 407e2207522Sjmmv 408e2207522Sjmmv* Change atf-sh to use atf-exec's -t option to control the test case's 409e2207522Sjmmv timeouts, instead of doing it internally. Same behavior as before, but 410e2207522Sjmmv noticeably faster. 411e2207522Sjmmv 41212aa0b5aSjmmv* atf-exec's -g option and atf-killpg are gone due to the previous 41312aa0b5aSjmmv change. 414e2207522Sjmmv 41512aa0b5aSjmmv* Added the atf-check(1) tool, a program that executes a given command 416edebbb8eSjmmv and checks its exit code against a known value and allows the management 417edebbb8eSjmmv of stdout and stderr in multiple ways. This replaces the previous 418edebbb8eSjmmv atf_check function in the atf-sh library and exposes this functionality 419edebbb8eSjmmv to both atf-c and atf-c++. 420e2207522Sjmmv 421e2207522Sjmmv* Added the ATF_REQUIRE family of macros to the C interface. These help 422e2207522Sjmmv in checking for fatal test conditions. The old ATF_CHECK macros now 423e2207522Sjmmv perform non-fatal checks only. I.e. by using ATF_CHECK, the test case 424e2207522Sjmmv can now continue its execution and the failures will not be reported 425e2207522Sjmmv until the end of the whole run. 426e2207522Sjmmv 42712aa0b5aSjmmv* Extended the amount of ATF_CHECK_* C macros with new ones to provide 42812aa0b5aSjmmv more features to the developer. These also have their corresponding 429e2207522Sjmmv counterparts in the ATF_REQUIRE_* family. The new macros (listing the 430e2207522Sjmmv suffixes only) are: _EQ (replaces _EQUAL), _EQ_MSG, _STREQ and 431e2207522Sjmmv _STREQ_MSG. 432e2207522Sjmmv 433edebbb8eSjmmv 43412aa0b5aSjmmvChanges in version 0.5 435edebbb8eSjmmv********************** 436e2207522Sjmmv 43712aa0b5aSjmmvExperimental version released on May 1st, 2008. 438e2207522Sjmmv 439e2207522Sjmmv* Clauses 3 and 4 of the BSD license used by the project were dropped. 440edebbb8eSjmmv All the code is now under a 2-clause BSD license compatible with the GNU 441edebbb8eSjmmv General Public License (GPL). 442e2207522Sjmmv 443e2207522Sjmmv* Added a C-only binding so that binary test programs do not need to be 444e2207522Sjmmv tied to C++ at all. This binding is now known as the atf-c library. 445e2207522Sjmmv 446e2207522Sjmmv* Renamed the C++ binding to atf-c++ for consistency with the new atf-c. 447e2207522Sjmmv 448e2207522Sjmmv* Renamed the POSIX shell binding to atf-sh for consistency with the new 449e2207522Sjmmv atf-c and atf-c++. 450e2207522Sjmmv 45112aa0b5aSjmmv* Added a -w flag to test programs through which it is possible to 45212aa0b5aSjmmv specify the work directory to be used. This was possible in prior 453edebbb8eSjmmv releases by defining the workdir configuration variable (-v workdir=...), 454edebbb8eSjmmv but was a conceptually incorrect mechanism. 455e2207522Sjmmv 456e2207522Sjmmv* Test programs now preserve the execution order of test cases when they 457e2207522Sjmmv are given in the command line. Even those mentioned more than once are 458e2207522Sjmmv executed multiple times to comply with the user's requests. 459e2207522Sjmmv 460edebbb8eSjmmv 46112aa0b5aSjmmvChanges in version 0.4 462edebbb8eSjmmv********************** 463e2207522Sjmmv 46412aa0b5aSjmmvExperimental version released on February 4th, 2008. 465e2207522Sjmmv 466e2207522Sjmmv* Added two new manual pages, atf-c++-api and atf-sh-api, describing the 467e2207522Sjmmv C++ and POSIX shell interfaces used to write test programs. 468e2207522Sjmmv 469e2207522Sjmmv* Added a pkg-config file, useful to get the flags to build against the 470e2207522Sjmmv C++ library or to easily detect the presence of ATF. 471e2207522Sjmmv 472e2207522Sjmmv* Added a way for test cases to require a specific architecture and/or 473e2207522Sjmmv machine type through the new 'require.arch' and 'require.machine' 474e2207522Sjmmv meta-data properties, respectively. 475e2207522Sjmmv 47612aa0b5aSjmmv* Added the 'timeout' property to test cases, useful to set an 47712aa0b5aSjmmv upper-bound limit for the test's run time and thus prevent global test 47812aa0b5aSjmmv program stalls due to the test case's misbehavior. 479e2207522Sjmmv 48012aa0b5aSjmmv* Added the atf-exec(1) internal utility, used to execute a command 48112aa0b5aSjmmv after changing the process group it belongs to. 482e2207522Sjmmv 483e2207522Sjmmv* Added the atf-killpg(1) internal utility, used to kill process groups. 484e2207522Sjmmv 48512aa0b5aSjmmv* Multiple portability fixes. Of special interest, full support for 486edebbb8eSjmmv SunOS (Solaris Express Developer Edition 2007/09) using the Sun Studio 12 487edebbb8eSjmmv C++ compiler. 488e2207522Sjmmv 48912aa0b5aSjmmv* Fixed a serious bug that prevented atf-run(1) from working at all 49012aa0b5aSjmmv under Fedora 8 x86_64. Due to the nature of the bug, other platforms 49112aa0b5aSjmmv were likely affected too. 492e2207522Sjmmv 493edebbb8eSjmmv 49412aa0b5aSjmmvChanges in version 0.3 495edebbb8eSjmmv********************** 496e2207522Sjmmv 49712aa0b5aSjmmvExperimental version released on November 11th, 2007. 498e2207522Sjmmv 49912aa0b5aSjmmv* Added XML output support to atf-report. This is accompanied by a DTD 500edebbb8eSjmmv for the format's structure and sample XSLT/CSS files to post-process this 501edebbb8eSjmmv output and convert it to a plain HTML report. 502e2207522Sjmmv 503e2207522Sjmmv* Changed atf-run to add system information to the report it generates. 504e2207522Sjmmv This is currently used by atf-report's XML output only, and is later 505edebbb8eSjmmv printed in the HTML reports in a nice and useful summary table. The user 506edebbb8eSjmmv and system administrator are allowed to tune this feature by means of 507edebbb8eSjmmv hooks. 508e2207522Sjmmv 50912aa0b5aSjmmv* Removed the test cases' 'isolated' property. This was intended to 510edebbb8eSjmmv avoid touching the file system at all when running the related test case, 511edebbb8eSjmmv but this has not been true for a long while: some control files are 512edebbb8eSjmmv unconditionally required for several purposes, and we cannot easily get 513edebbb8eSjmmv rid of them. This way we remove several critical and delicate pieces of 514edebbb8eSjmmv code. 515e2207522Sjmmv 516e2207522Sjmmv* Improved atf-report's CSV output format to include information about 517e2207522Sjmmv test programs too. 518e2207522Sjmmv 519e2207522Sjmmv* Fixed the tests that used atf-compile to not require this tool as a 520e2207522Sjmmv helper. Avoids systems without build-time utilities to skip many tests 521e2207522Sjmmv that could otherwise be run. (E.g. NetBSD without the comp.tgz set 522e2207522Sjmmv installed.) 523e2207522Sjmmv 524e2207522Sjmmv* Many general cleanups: Fixed many pieces of code marked as ugly and/or 525e2207522Sjmmv incomplete. 526e2207522Sjmmv 527edebbb8eSjmmv 52812aa0b5aSjmmvChanges in version 0.2 529edebbb8eSjmmv********************** 530e2207522Sjmmv 53112aa0b5aSjmmvExperimental version released on September 20th, 2007. 532e2207522Sjmmv 533e2207522Sjmmv* Test cases now get a known umask on entry. 534e2207522Sjmmv 535edebbb8eSjmmv* atf-run now detects many unexpected failures caused by test programs and 536edebbb8eSjmmv reports them as bogus tests. atf-report is able to handle these new 537edebbb8eSjmmv errors and nicely reports them to the user. 538e2207522Sjmmv 53912aa0b5aSjmmv* All the data formats read and written by the tools have been 540edebbb8eSjmmv documented and cleaned up. These include those grammars that define how 541edebbb8eSjmmv the different components communicate with each other as well as the 542edebbb8eSjmmv format of files written by the developers and users: the Atffiles and the 543edebbb8eSjmmv configuration files. 544e2207522Sjmmv 54512aa0b5aSjmmv* Added the atf-version tool, a utility that displays information about 54612aa0b5aSjmmv the currently installed version of ATF. 547e2207522Sjmmv 548e2207522Sjmmv* Test cases can now define an optional cleanup routine to undo their 549e2207522Sjmmv actions regardless of their exit status. 550e2207522Sjmmv 55112aa0b5aSjmmv* atf-report now summarizes the list of failed (bogus) test programs 55212aa0b5aSjmmv when using the ticker output format. 553e2207522Sjmmv 554e2207522Sjmmv* Test programs now capture some termination signals and clean up any 555e2207522Sjmmv temporary files before exiting the program. 556e2207522Sjmmv 557e2207522Sjmmv* Multiple bug fixes and improvements all around. 558e2207522Sjmmv 559edebbb8eSjmmv 56012aa0b5aSjmmvChanges in version 0.1 561edebbb8eSjmmv********************** 562e2207522Sjmmv 56312aa0b5aSjmmvExperimental version released on August 20th, 2007. 564e2207522Sjmmv 565e2207522Sjmmv* First public version. This was released coinciding with the end of the 566e2207522Sjmmv Google Summer of Code 2007 program. 567edebbb8eSjmmv 568edebbb8eSjmmv 569edebbb8eSjmmv=========================================================================== 570edebbb8eSjmmvvim: filetype=text:textwidth=75:expandtab:shiftwidth=2:softtabstop=2 571