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