Releases: freebsd/atf
ATF 0.22: cleanup release post-FreeBSD fork
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 toatf-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
withstd::vector
(fixes modern C++ compliance). -
Replace
auto_ptr
withstd::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*
andATF_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)
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
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
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
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
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
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
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
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
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.