Skip to content

Releases: freebsd/atf

ATF 0.22: cleanup release post-FreeBSD fork

25 Nov 23:26
Compare
Choose a tag to compare

Changes in version 0.22

Released on November 25th, 2024.

  • Issue #23: Fix double-free triggered by atf_map_insert in low memory
    scenarios, caused by an overlook in the atf_list code.

  • Issue #31: Added require.progs metadata properties to the tests that
    need a compiler to run.

  • Added the atf_check_not_equal function to atf-sh to check for
    unequal values.

  • Add -r timeout flag to atf-check.

  • Open results files before executing tests to fix an issue ATF tests that
    adjust the processes' Capsicum rights as part of the testcase(s)
    executed.

  • Add Cirrus CI integration for FreeBSD CI/CD support.

  • Address compilation issues on OpenSolaris distributions.

  • Replace auto_array with std::vector (fixes modern C++ compliance).

  • Replace auto_ptr with std::shared_ptr (fixes modern C++ compliance).

  • Update autotools idioms and requirements. The minimum required version of
    autoconf is now 2.68.

  • Always define CPP to fix use of ATF_BUILD_CPP when the user did not
    define CPP when invoking the configure script.

  • Modify ATF_CHECK* and ATF_REQUIRE* macros to avoid double
    evaluation/allow the gcc toolchain to detect accidental single
    assignment typos.

General fixes

  • Fix various typos and formatting errors in manual pages and markdown
    documents.

Full Changelog: atf-0.21...atf-0.22

ATF 0.21: Major cleanup release (bug fixes, doc improvements)

23 Oct 20:21
Compare
Choose a tag to compare

Changes in version 0.21


Released on October 23rd, 2014.

  • Restored the atf(7) manual page to serve as a reference to all the other
    manual pages shipped by ATF.
  • Added the -s flag to atf-sh to support specifying the shell interpreter
    to be used.
  • Removed ATF_WORKDIR. The only remaining consumers have been converted to
    use the standard TMPDIR environment variable. As a benefit, and because
    Kyua forces the TMPDIR to live within the test case's work directory,
    any stale files left behind by ATF will be automatically cleaned up.
  • Documented the environment variables recognized by each component in the
    relevant manual pages. This information was lost with the atf-config(1)
    removal.
  • Added a new "require.diskspace" metadata property to test cases so that
    they can specify the minimum amount of disk space required for the test
    to run.
  • Renamed the atf-{c,c++,sh}-api(3) manual pages to atf-{c,c++,sh}(3) for
    discoverability purposes. Symbolic links are provided for the time
    being to still make the old names visible.
  • Issue #5: Recommend the (expected, actual) idiom for calls to the test
    macros in the manual pages.
  • Issue #7: Stopped catching unhandled exceptions in atf-c++ tests. This
    propagates the crash to the caller, which in turn allows it to obtain
    proper debugging information. In particular, Kyua should now be able to
    extract a stacktrace pinpointing the problem.
  • Issue #8: Fixed atf-c/macros_test:use test failures spotted by the clang
    that ships with FreeBSD 11.0-CURRENT.
  • Issue #12: Improved documentation of atf-sh(3) and atf-check(1) by better
    explaining how they relate to each other.
  • Issue #14: Stopped setting 'set -e' in atf-sh. This setting was
    initially added as a way to enable a "strict" mode in the library and to
    make test cases fail fast when they run unprotected commands. However,
    doing so in the library is surprising as the responsibility of enabling
    'set -e' should be on the user's code. Also, 'set -e' introduces
    inconsistent behavior on subshells and users do not expect that.
  • Issue #15: Fixed atf_utils_{fork,wait} to support nested calls.
  • Issue #16: Fixed test failures (by removing a long-standing hack) on
    systems that lack \e support in printf(1).
  • Issue #19: Removed stale references to atf-config and atf-run.

ATF 0.20: First release without the deprecated tools

07 Feb 21:58
Compare
Choose a tag to compare

Changes in version 0.20

Experimental version released on February 7th, 2014.

This is the first release without the code for the deprecated tools. If
you require such code, please fetch a copy of the 0.19 release and extract
the 'tools' directory for your own consumption.

  • Removed the deprecated tools. This includes atf-config, atf-report,
    atf-run and atf-version.

ATF 0.19: Last release with the deprecated tools

07 Feb 21:57
Compare
Choose a tag to compare

Changes in version 0.19

Experimental version released on February 7th, 2014.

This is the last release to bundle the code for the deprecated tools.
The next release will drop their code and will stop worrying about
backwards compatibility between the ATF libraries and what the old tools
may or may not support.

If you still require the old tools for some reason, grab a copy of the
'tools' directory now. The code in this directory is standalone and
does not depend on any internal details of atf-c++ any longer.

  • Various fixes and improvements to support running as part of the FreeBSD
    test suite.
  • Project hosting moved from Google Code (as a subproject of Kyua) to
    GitHub (as a first-class project). The main reason for the change is
    the suppression of binary downloads in Google Code on Jan 15th, 2014.
    See https://github.com/jmmv/atf/
  • Removed builtin help from atf-sh(1) and atf-check(1) for simplicity
    reasons. In other words, their -h option is gone.
  • Moved the code of the deprecated tools into a 'tools' directory and
    completely decoupled their code from the internals of atf-c++. The
    reason for this is to painlessly allow a third-party to maintain a
    copy of these tools after we delete them because upcoming changes to
    atf-c++ would break the stale tools.

ATF 0.18

06 Feb 11:51
Compare
Choose a tag to compare

Changes in version 0.18

Experimental version released on November 16th, 2013.

  • Issue 45: Added require.memory support in atf-run for FreeBSD.
  • Fixed an issue with the handling of cin with libc++.
  • Issue 64: Fixed various mandoc formatting warnings.
  • NetBSD PR bin/48284: Made atf-check flush its progress message to
    stdout so that an interrupted test case always shows the last message
    being executed.
  • NetBSD PR bin/48285: Fixed atf_check examples in atf-sh-api(3).

ATF 0.17

06 Feb 11:51
Compare
Choose a tag to compare

Changes in version 0.17

Experimental version released on February 14th, 2013.

  • Added the atf_utils_cat_file, atf_utils_compare_file,
    atf_utils_copy_file, atf_utils_create_file, atf_utils_file_exists,
    atf_utils_fork, atf_utils_grep_file, atf_utils_grep_string,
    atf_utils_readline, atf_utils_redirect and atf_utils_wait utility
    functions to atf-c-api. Documented the already-public
    atf_utils_free_charpp function.
  • Added the cat_file, compare_file, copy_file, create_file, file_exists,
    fork, grep_collection, grep_file, grep_string, redirect and wait
    functions to the atf::utils namespace of atf-c++-api. These are
    wrappers around the same functions added to the atf-c-api library.
  • Added the ATF_CHECK_MATCH, ATF_CHECK_MATCH_MSG, ATF_REQUIRE_MATCH and
    ATF_REQUIRE_MATCH_MSG macros to atf-c to simplify the validation of a
    string against a regular expression.
  • Miscellaneous fixes for manpage typos and compilation problems with
    clang.
  • Added caching of the results of those configure tests that rely on
    executing a test program. This should help crossbuild systems by
    providing a mechanism to pre-specify what the results should be.
  • PR bin/45690: Make atf-report convert any non-printable characters to
    a plain-text representation (matching their corresponding hexadecimal
    entities) in XML output files. This is to prevent the output of test
    cases from breaking xsltproc later.

ATF 0.16

06 Feb 11:51
Compare
Choose a tag to compare

Changes in version 0.16

Experimental version released on July 10th, 2012.

  • Added a --enable-tools flag to configure to request the build of the
    deprecated ATF tools, whose build is now disabled by default. In order
    to continue running tests, you should migrate to Kyua instead of enabling
    the build of the deprecated tools. The kyua-atf-compat package provides
    transitional compatibility versions of atf-run and atf-report built on
    top of Kyua.
  • Tweaked the ATF_TEST_CASE macro of atf-c++ so that the compiler can
    detect defined but unused test cases.
  • PR bin/45859: Fixed some XSLT bugs that resulted in the tc-time and
    tp-time XML tags leaking into the generated HTML file. Also improved
    the CSS file slightly to correct alignment and color issues with the
    timestamps column.
  • Optimized atf-c++/macros.hpp so that GNU G++ consumes less memory during
    compilation with GNU G++.
  • Flipped the default to building shared libraries for atf-c and atf-c++,
    and started versioning them. As a side-effect, this removes the
    --enable-unstable-shared flag from configure that appears to not work any
    more (under NetBSD). Additionally, some distributions require the use of
    shared libraries for proper dependency tracking (e.g. Fedora), so it is
    better if we do the right versioning upstream.
  • Project hosting moved from an adhoc solution (custom web site and
    Monotone repository) to Google Code (standard wiki and Git). ATF now
    lives in a subcomponent of the Kyua project.

ATF 0.9

06 Feb 11:50
Compare
Choose a tag to compare

Changes in version 0.9

Experimental version released on June 3rd, 2010.

  • Added atf-sh, an interpreter to process test programs written using
    the shell API. This is not really a shell interpreter by itself though:
    it is just a wrapper around the system shell that eases the loading of
    the necessary ATF libraries.
  • Removed atf-compile in favour of atf-sh.
  • Added the use.fs metadata property to test case, which is used to
    specify which test cases require file system access. This is to
    highlight dependencies on external resources more clearly and to speed up
    the execution of test suites by skipping the creation of many unnecessary
    work directories.
  • Fixed test programs to get a sane default value for their source
    directory. This means that it should not be necessary any more to pass
    -s when running test programs that do not live in the current directory.
  • Defining test case headers became optional. This is trivial to achieve
    in shell-based tests but a bit ugly in C and C++. In C, use the new
    ATF_TC_WITHOUT_HEAD macro to define the test case, and in C++ use
    ATF_TEST_CASE_WITHOUT_HEAD.

ATF 0.8

06 Feb 11:50
Compare
Choose a tag to compare

Changes in version 0.8

Experimental version released on May 7th, 2010.

  • Test programs no longer run several test cases in a row. The execution
    of a test program now requires a test case name, and that single test
    case is executed. To execute several test cases, use the atf-run utility
    as usual.
  • Test programs no longer fork a subprocess to isolate the execution of
    test cases. They run the test case code in-process, and a crash of the
    test case will result in a crash of the test program. This is to ease
    debugging of faulty test cases.
  • Test programs no longer isolate their test cases. This means that they
    will not create temporary directories nor sanitize the environment any
    more. Yes: running a test case that depends on system state by hand will
    most likely yield different results depending on where (machine,
    directory, user environment, etc.) it is run. Isolation has been moved
    to atf-run.
  • Test programs no longer print a cryptic format (application/X-atf-tcs)
    on a special file channel. They can now print whatever they want on the
    screen. Because test programs can now only run one test case every time,
    providing controlled output is not necessary any more.
  • Test programs no longer write their status into a special file
    descriptor. Instead, they create a file with the results, which is later
    parsed by atf-run. This changes the semantics of the -r flag.
  • atf-run has been adjusted to perform the test case isolation. As a
    result, there is now a single canonical place that implements the
    isolation of test caes. In previous releases, the three language
    bindings (C, C++ and shell) had to be kept in sync with each other (read:
    not a nice thing to do at all). As a side effect of this change, writing
    bindings for other languages will be much, much easier from now on.
  • atf-run forks test programs on a test case basis, instead of on a test
    program basis as it did before. This is to provide the test case
    isolation that was before implemented by the test programs themselves.
  • Removed the atf-exec tool. This was used to implement test case
    isolation in atf-sh, but it is now unnecessary.
  • It is now optional to define the descr meta-data property. It has been
    proven to be mostly useless, because test cases often carry a descriptive
    name of their own.

ATF 0.7

06 Feb 11:50
Compare
Choose a tag to compare

Changes in version 0.7

Experimental version released on December 22nd, 2009.

  • Added build-time checks to atf-c and atf-c++. A binding for atf-sh
    will come later.
  • Migrated all build-time checks for header files to proper ATF tests.
    This demonstrates the use of the new feature described above.
  • Added an internal API for child process management.
  • Converted all plain-text distribution documents to a Docbook canonical
    version, and include pre-generated plain text and HTML copies in the
    distribution file.
  • Simplified the contents of the Makefile.am by regenerating it from a
    canonical Makefile.am.m4 source. As a side-effect, some dependency
    specifications were fixed.
  • Migrated all checks from the check target to installcheck, as these
    require ATF to be installed.
  • Fixed sign comparison mismatches triggered by the now-enabled
    -Wsign-compare.
  • Fixed many memory and object leaks.