git: a0691523367a - stable/14 - contrib/atf: upgrade to 0.26
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 01 Nov 2026 02:25:26 UTC
The branch stable/14 has been updated by ngie:
URL: https://cgit.FreeBSD.org/src/commit/?id=a0691523367ae1d5d62bc03beb6ac530f376ce7b
commit a0691523367ae1d5d62bc03beb6ac530f376ce7b
Author: Enji Cooper <ngie@FreeBSD.org>
AuthorDate: 2026-09-22 15:23:32 +0000
Commit: Enji Cooper <ngie@FreeBSD.org>
CommitDate: 2026-11-01 02:24:21 +0000
contrib/atf: upgrade to 0.26
This new version gets contrib/atf in line with the published version of
the package up on [GitHub][github].
Please note that this release is a major update: it contains several
bugfixes and feature enhancements. Most were already present in the
FreeBSD src repo, but there were a large number of changes made in
addition to what was already present.
MFC after: 1 month
Merge commit '9c78088348bcf1059d82a62bb57a0746309d4312'
Conflicts:
ObsoleteFiles.inc
contrib/atf/.cirrus.yml
contrib/atf/Makefile.am
contrib/atf/Makefile.in
contrib/atf/aclocal.m4
contrib/atf/admin/ar-lib
contrib/atf/admin/check-style-common.awk
contrib/atf/admin/check-style.sh
contrib/atf/admin/compile
contrib/atf/admin/config.guess
contrib/atf/admin/config.sub
contrib/atf/admin/depcomp
contrib/atf/admin/install-sh
contrib/atf/admin/ltmain.sh
contrib/atf/admin/missing
contrib/atf/atf-c++/Makefile.am.inc
contrib/atf/atf-c++/atf-c++.3
contrib/atf/atf-c++/atf-c++.pc.in
contrib/atf/atf-c++/check.cpp
contrib/atf/atf-c++/check.hpp
contrib/atf/atf-c++/detail/Makefile.am.inc
contrib/atf/atf-c++/detail/process_test.cpp
contrib/atf/atf-c/Makefile.am.inc
contrib/atf/atf-c/atf-c.3
contrib/atf/atf-c/atf-c.pc.in
contrib/atf/atf-c/detail/Makefile.am.inc
contrib/atf/atf-c/detail/fs.c
contrib/atf/atf-c/detail/fs_test.c
contrib/atf/atf-c/detail/process_test.c
contrib/atf/atf-c/tc.c
contrib/atf/atf-c/tc.h
contrib/atf/atf-sh/Makefile.am.inc
contrib/atf/atf-sh/atf-check.cpp
contrib/atf/atf-sh/atf-check_test.sh
contrib/atf/bootstrap/Makefile.am.inc
contrib/atf/bootstrap/package.m4
contrib/atf/bootstrap/testsuite
contrib/atf/config.h
contrib/atf/configure
contrib/atf/configure.ac
contrib/atf/doc/Makefile.am.inc
contrib/atf/doc/atf-test-case.7
contrib/atf/m4/developer-mode.m4
contrib/atf/m4/libtool.m4
contrib/atf/m4/ltoptions.m4
contrib/atf/m4/ltsugar.m4
contrib/atf/m4/ltversion.m4
contrib/atf/m4/lt~obsolete.m4
contrib/atf/m4/module-defs.m4
contrib/atf/test-programs/Makefile.am.inc
share/doc/atf/Makefile
share/man/man4/Makefile
share/man/man7/Makefile
[github]: https://github.com/freebsd/atf
(cherry picked from commit 952231086100bed7130212b5425e44ffd732913b)
---
ObsoleteFiles.inc | 3 +
contrib/atf/.cirrus.yml | 26 --
contrib/atf/.gitignore | 25 --
contrib/atf/.travis.yml | 25 --
contrib/atf/FREEBSD-Xlist | 2 +-
contrib/atf/NEWS | 200 ++++++++++----
contrib/atf/README | 37 ---
contrib/atf/README.md | 43 ++-
contrib/atf/atf-c++/atf-c++.3 | 4 +-
contrib/atf/atf-c++/check.cpp | 3 +-
contrib/atf/atf-c++/check.hpp | 3 +-
contrib/atf/atf-c++/detail/Kyuafile | 1 -
contrib/atf/atf-c++/detail/application.cpp | 16 +-
contrib/atf/atf-c++/detail/application.hpp | 1 -
contrib/atf/atf-c++/detail/auto_array.hpp | 175 ------------
contrib/atf/atf-c++/detail/auto_array_test.cpp | 302 ---------------------
contrib/atf/atf-c++/detail/fs.cpp | 1 -
contrib/atf/atf-c++/detail/process.cpp | 22 +-
contrib/atf/atf-c++/detail/process.hpp | 3 +-
contrib/atf/atf-c++/detail/process_test.cpp | 32 +--
contrib/atf/atf-c++/detail/test_helpers.hpp | 4 -
contrib/atf/atf-c++/detail/text.cpp | 8 -
contrib/atf/atf-c++/detail/text.hpp | 8 -
contrib/atf/atf-c++/detail/text_test.cpp | 21 --
contrib/atf/atf-c++/tests.cpp | 48 ++--
contrib/atf/atf-c++/tests_test.cpp | 4 +
contrib/atf/atf-c/.gitignore | 1 -
contrib/atf/atf-c/atf-c.3 | 22 +-
contrib/atf/atf-c/build.c | 2 +-
contrib/atf/atf-c/check.c | 1 +
contrib/atf/atf-c/defs.h.in | 1 +
contrib/atf/atf-c/detail/dynstr.c | 35 +--
contrib/atf/atf-c/detail/dynstr_test.c | 21 +-
contrib/atf/atf-c/detail/env.c | 41 +--
contrib/atf/atf-c/detail/fs.c | 57 +---
contrib/atf/atf-c/detail/fs_test.c | 11 +-
contrib/atf/atf-c/detail/list.c | 5 +-
contrib/atf/atf-c/detail/map.c | 22 +-
contrib/atf/atf-c/detail/map_test.c | 1 +
contrib/atf/atf-c/detail/process.c | 59 ++--
contrib/atf/atf-c/detail/process.h | 3 +-
contrib/atf/atf-c/detail/process_test.c | 57 ++--
contrib/atf/atf-c/detail/sanity_test.c | 9 +-
contrib/atf/atf-c/detail/text.c | 1 +
contrib/atf/atf-c/detail/tp_main.c | 59 ++--
contrib/atf/atf-c/error.c | 10 +-
contrib/atf/atf-c/macros.h | 8 +-
contrib/atf/atf-c/tc.c | 71 +++--
contrib/atf/atf-c/tc.h | 2 -
contrib/atf/atf-c/tc_test.c | 86 ++++++
contrib/atf/atf-c/tp.c | 3 +-
contrib/atf/atf-c/tp.h | 2 +-
contrib/atf/atf-c/tp_test.c | 1 +
contrib/atf/atf-c/utils.c | 72 +++--
contrib/atf/atf-c/utils.h | 1 +
contrib/atf/atf-sh/.gitignore | 2 -
contrib/atf/atf-sh/Kyuafile | 1 +
contrib/atf/atf-sh/Kyuafile.in | 11 +
contrib/atf/atf-sh/atf-check.1 | 42 +--
contrib/atf/atf-sh/atf-check.cpp | 67 +++--
contrib/atf/atf-sh/atf-check_test.sh | 4 +-
contrib/atf/atf-sh/atf-sh.3 | 2 +-
contrib/atf/atf-sh/atf-sh.cpp | 52 ++--
contrib/atf/atf-sh/integration_test.sh | 19 ++
contrib/atf/atf-sh/kmod_test.sh | 55 ++++
contrib/atf/atf-sh/libatf-sh.subr | 40 +++
contrib/atf/config.h | 132 +++++++--
contrib/atf/doc/.gitignore | 1 -
.../atf/doc/{atf-test-case.4 => atf-test-case.7} | 14 +-
contrib/atf/test-programs/srcdir_test.sh | 10 -
lib/atf/Makefile.inc | 2 +
libexec/atf/Makefile.inc | 2 +
share/doc/atf/Makefile | 12 +-
share/man/man4/Makefile | 6 -
share/man/man7/Makefile | 11 +-
75 files changed, 950 insertions(+), 1216 deletions(-)
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 06e7f963e89e..3318e4f09844 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -64,6 +64,9 @@ OLD_FILES+=usr/share/certs/untrusted/Entrust_Root_Certification_Authority.pem
OLD_FILES+=usr/bin/lesskey
OLD_FILES+=usr/share/man/man1/lesskey.1.gz
+# 20260921: atf-0.26 release
+OLD_FILES+=usr/share/doc/atf/README
+
# 20260602: Removed by 0a36787e4c1f on 20210723
OLD_FILES+=usr/share/locale/hr_HR.ISO8859-2/LC_MESSAGES
OLD_FILES+=usr/share/locale/nl_BE.ISO8859-1/LC_MESSAGES
diff --git a/contrib/atf/.cirrus.yml b/contrib/atf/.cirrus.yml
deleted file mode 100644
index fd9b6e4a47df..000000000000
--- a/contrib/atf/.cirrus.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-env:
- CIRRUS_CLONE_DEPTH: 1
- ARCH: amd64
-
-task:
- matrix:
- - name: 13.0-CURRENT
- freebsd_instance:
- image_family: freebsd-13-0-snap
- - name: 12.2-STABLE
- freebsd_instance:
- image_family: freebsd-12-2-snap
- - name: 12.1-RELEASE
- freebsd_instance:
- image_family: freebsd-12-1
- install_script:
- - sed -i.bak -e 's,pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly,pkg+http://pkg.FreeBSD.org/\${ABI}/latest,' /etc/pkg/FreeBSD.conf
- - ASSUME_ALWAYS_YES=yes pkg bootstrap -f
- - pkg install -y autoconf automake libtool kyua
- script:
- - env JUNIT_OUTPUT=$(pwd)/test-results.xml ./admin/travis-build.sh
- always:
- junit_artifacts:
- path: "test-results.xml"
- type: text/xml
- format: junit
diff --git a/contrib/atf/.gitignore b/contrib/atf/.gitignore
deleted file mode 100644
index 396785ce2052..000000000000
--- a/contrib/atf/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-*.la
-*.lo
-*.o
-*.pc
-*_helper
-*_helpers
-*_test
-.deps
-.dirstamp
-.libs
-
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache
-config.h
-config.h.in
-config.h.in~
-config.log
-config.status
-configure
-installcheck.log
-libtool
-stamp-h1
-testsuite.log
diff --git a/contrib/atf/.travis.yml b/contrib/atf/.travis.yml
deleted file mode 100644
index 1949aae54468..000000000000
--- a/contrib/atf/.travis.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-language: cpp
-
-compiler:
- - gcc
- - clang
-
-before_install:
- - ./admin/travis-install-deps.sh
-
-env:
- - ARCH=amd64 AS_ROOT=no
- - ARCH=amd64 AS_ROOT=yes
- - ARCH=i386 AS_ROOT=no
-
-matrix:
- exclude:
- - compiler: clang
- env: ARCH=i386 AS_ROOT=no
-
-script:
- - ./admin/travis-build.sh
-
-notifications:
- email:
- - atf-log@googlegroups.com
diff --git a/contrib/atf/FREEBSD-Xlist b/contrib/atf/FREEBSD-Xlist
index 05ea871eb95c..06fef93a4024 100644
--- a/contrib/atf/FREEBSD-Xlist
+++ b/contrib/atf/FREEBSD-Xlist
@@ -2,7 +2,7 @@
*/Makefile*
*/*.m4
*/*.pc.in
-INSTALL
+INSTALL.md
Makefile*
aclocal.m4
admin/
diff --git a/contrib/atf/NEWS b/contrib/atf/NEWS
index 671ee81ff6ff..e1c9e5f512f5 100644
--- a/contrib/atf/NEWS
+++ b/contrib/atf/NEWS
@@ -1,26 +1,140 @@
-Major changes between releases Automated Testing Framework
-===========================================================================
+# Major changes between releases
+
+## Changes in version 0.26
+
+Released on 2026/09/22.
+
+### Developer Workflow Changes
+
+* #189: Automate uploading release assets
+* #190: INSTALL.md: sync content with version from lutok
+* #191: [CI] Minor tweaks
+
+### Feature Enhancements
+
+* #192: Add kmod support on FreeBSD
+
+**Full Changelog**: https://github.com/freebsd/atf/compare/atf-0.25...atf-0.26
+
+## Changes in version 0.25
+
+Released on 2026/09/02.
+
+### Bugfixes
+* #187: Fix the build on NetBSD by renaming a variable added in version 0.24.
+
+### Developer Workflow Changes
+* #185: The version of LLVM used in macOS runners was bumped from 19 to 20
+
+**Full Changelog**: https://github.com/freebsd/atf/compare/atf-0.24...atf-0.25
+
+## Changes in version 0.24
+
+Released on August, 17, 2026
+
+### Major Changes
+* This version of ATF requires C++-20 to build/function.
+* This version of ATF focused heavily on correctness and memory management
+ issues discussed in #77. While most of the issues are believed to be resolved,
+ some issues may still remain.
+* The `atf::text::duplicate(..)` API and tests were removed.
+
+### Feature Enhancements
+* Issue #105: Widen our process status capabilties
+
+### Docs
+* Issue #107: Clarify the semantics of ATF_{CHECK,REQUIRE}_ERRNO()
+* Issue #124: atf-check.1: Add missing -r flag to synopsis
+* Issue #127: atf-c.3: Fix test case addition in ATF_TP_ADD_TCS synopsis example
+
+### Developer Workflow Changes
+* GitHub Actions support was added.
+* Cirrus CI support was removed.
+* FreeBSD vmactions CI support was added.
+* ASAN/LSAN/UBSAN support was added for Linux and macOS.
+* (Initial) runtime code coverage support was added.
+* (Initial) pre-commit support was added.
+
+**Full Changelog**: https://github.com/freebsd/atf/compare/atf-0.23...atf-0.24
+
+## Changes in version 0.23
+
+Released on March, 29, 2025
-Changes in version 0.22
-***********************
+* Issue #101: fix release tarballs by using `make dist` instead of
+ alternative ad hoc method.
-STILL UNDER DEVELOPMENT; NOT RELEASED YET.
-DON'T FORGET TO BUMP THE -version-info PRE-RELEASE IF NECESSARY!
+* Issue #76: `atf_check`: fix `std::length_error` thrown from `temp_file`.
+
+* #87: Update documentation/build files to point to FreeBSD repo/mailing lists.
+
+* #86: Improve diagnostics when paths cannot be opened
+
+* #85: various build-related changes. Highlights:
+ * Remove leftover references of `auto_array` (bugfix).
+ * Remove the `atf-*-api` manpages (enhancement).
+ * Require -std=C++14 with ATF (enhancement).
+ * Expose `WCOREDUMP(..)` on platforms that support it (bugfix).
+ * Add `__attribute__((nonnull))` support (enhancement).
+ * Restore `AC_PROG_CPP` (bugfix).
+
+### General fixes
+
+* Fix various style issues which were blocking `make dist` from completing
+ cleanly.
+
+* Fix `atf_utils_file_exists` declaration in atf-c(3).
+
+* Fix various memory leaks and logic errors.
+
+* `atf-test-case(4)`: update reference to the "descr" metadata property so it's
+ marked Optional.
+
+* `atf-check.cpp`: remove unnecessary data copy in `temp_file`.
+
+## 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 #29: Fixed various typos and formatting errors in manual pages.
-
* 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::unique_ptr` (fixes modern C++ compliance).
+
+* Update autotools idioms and requirements. The minimum required version of
+ autoconf is now 2.68.
+
+* Modify `ATF_CHECK*` and `ATF_REQUIRE*` macros to avoid double
+ evaluation/allow the gcc toolchain to detect accidental single
+ assignment typos.
+
+* Always define CPP to fix use of ATF_BUILD_CPP when the user did not
+ define CPP when invoking the configure script.
+
+### General fixes
+
+* Fix various typos and formatting errors in manual pages and markdown
+ documents.
-Changes in version 0.21
-***********************
+## Changes in version 0.21
Released on October 23rd, 2014.
@@ -76,8 +190,7 @@ Released on October 23rd, 2014.
* Issue #19: Removed stale references to atf-config and atf-run.
-Changes in version 0.20
-***********************
+## Changes in version 0.20
Experimental version released on February 7th, 2014.
@@ -92,8 +205,7 @@ the 'tools' directory for your own consumption.
that ships with FreeBSD 11.0-CURRENT.
-Changes in version 0.19
-***********************
+## Changes in version 0.19
Experimental version released on February 7th, 2014.
@@ -112,7 +224,7 @@ does not depend on any internal details of atf-c++ any longer.
* 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/
+ See https://github.com/freebsd/atf/
* Removed builtin help from atf-sh(1) and atf-check(1) for simplicity
reasons. In other words, their -h option is gone.
@@ -124,8 +236,7 @@ does not depend on any internal details of atf-c++ any longer.
atf-c++ would break the stale tools.
-Changes in version 0.18
-***********************
+## Changes in version 0.18
Experimental version released on November 16th, 2013.
@@ -142,8 +253,7 @@ Experimental version released on November 16th, 2013.
* NetBSD PR bin/48285: Fixed atf_check examples in atf-sh-api(3).
-Changes in version 0.17
-***********************
+## Changes in version 0.17
Experimental version released on February 14th, 2013.
@@ -176,8 +286,7 @@ Experimental version released on February 14th, 2013.
cases from breaking xsltproc later.
-Changes in version 0.16
-***********************
+## Changes in version 0.16
Experimental version released on July 10th, 2012.
@@ -211,8 +320,7 @@ Experimental version released on July 10th, 2012.
lives in a subcomponent of the Kyua project.
-Changes in version 0.15
-***********************
+## Changes in version 0.15
Experimental version released on January 16th, 2012.
@@ -248,8 +356,7 @@ Experimental version released on January 16th, 2012.
mangle our report.
-Changes in version 0.14
-***********************
+## Changes in version 0.14
Experimental version released on June 14th, 2011.
@@ -277,8 +384,7 @@ Experimental version released on June 14th, 2011.
case to run.
-Changes in version 0.13
-***********************
+## Changes in version 0.13
Experimental version released on March 31st, 2011.
@@ -323,8 +429,7 @@ The changes in this release are:
instead of just listing them as having 0 test cases.
-Changes in version 0.12
-***********************
+## Changes in version 0.12
Experimental version released on November 7th, 2010.
@@ -359,8 +464,7 @@ Experimental version released on November 7th, 2010.
general, not be blindly run as root in the first place.
-Changes in version 0.11
-***********************
+## Changes in version 0.11
Experimental version released on October 20th, 2010.
@@ -382,8 +486,7 @@ Experimental version released on October 20th, 2010.
* Fixed the XSTL and CSS stylesheets to support expected failures.
-Changes in version 0.10
-***********************
+## Changes in version 0.10
Experimental version released on July 2nd, 2010.
@@ -410,7 +513,7 @@ Miscellaneous features
take the expected exception as the first argument and the statement to
execute as the second argument.
-Changes in atf-check
+### Changes in atf-check
* Changed atf-check to support negating the status and output checks by
prefixing them with not- and added support to specify multiple checkers
@@ -463,8 +566,7 @@ Code simplifications and cleanups
easier to maintain.
-Changes in version 0.9
-**********************
+## Changes in version 0.9
Experimental version released on June 3rd, 2010.
@@ -491,8 +593,7 @@ Experimental version released on June 3rd, 2010.
ATF_TEST_CASE_WITHOUT_HEAD.
-Changes in version 0.8
-**********************
+## Changes in version 0.8
Experimental version released on May 7th, 2010.
@@ -541,8 +642,7 @@ Experimental version released on May 7th, 2010.
name of their own.
-Changes in version 0.7
-**********************
+## Changes in version 0.7
Experimental version released on December 22nd, 2009.
@@ -571,8 +671,7 @@ Experimental version released on December 22nd, 2009.
* Fixed many memory and object leaks.
-Changes in version 0.6
-**********************
+## Changes in version 0.6
Experimental version released on January 18th, 2009.
@@ -605,8 +704,7 @@ Experimental version released on January 18th, 2009.
_STREQ_MSG.
-Changes in version 0.5
-**********************
+## Changes in version 0.5
Experimental version released on May 1st, 2008.
@@ -632,8 +730,7 @@ Experimental version released on May 1st, 2008.
executed multiple times to comply with the user's requests.
-Changes in version 0.4
-**********************
+## Changes in version 0.4
Experimental version released on February 4th, 2008.
@@ -665,8 +762,7 @@ Experimental version released on February 4th, 2008.
were likely affected too.
-Changes in version 0.3
-**********************
+## Changes in version 0.3
Experimental version released on November 11th, 2007.
@@ -699,8 +795,7 @@ Experimental version released on November 11th, 2007.
incomplete.
-Changes in version 0.2
-**********************
+## Changes in version 0.2
Experimental version released on September 20th, 2007.
@@ -731,8 +826,7 @@ Experimental version released on September 20th, 2007.
* Multiple bug fixes and improvements all around.
-Changes in version 0.1
-**********************
+## Changes in version 0.1
Experimental version released on August 20th, 2007.
@@ -741,4 +835,4 @@ Experimental version released on August 20th, 2007.
===========================================================================
-vim: filetype=text:textwidth=75:expandtab:shiftwidth=2:softtabstop=2
+# vim: syntax=markdown:textwidth=75:expandtab:shiftwidth=2:softtabstop=2
diff --git a/contrib/atf/README b/contrib/atf/README
deleted file mode 100644
index d3b03edb9419..000000000000
--- a/contrib/atf/README
+++ /dev/null
@@ -1,37 +0,0 @@
-Introductory information Automated Testing Framework
-===========================================================================
-
-
-Introduction
-************
-
-The Automated Testing Framework (ATF) is a collection of libraries to
-implement test programs in a variety of languages. At the moment, ATF
-offers C, C++ and POSIX shell bindings with which to implement tests.
-These bindings all offer a similar set of functionality and any test
-program written with them exposes a consistent user interface.
-
-ATF-based test programs rely on a separate runtime engine to execute them.
-The runtime engine is in charge of isolating the test programs from the
-rest of the system to ensure that their results are deterministic and that
-they cannot affect the running system. The runtime engine is also
-responsible for gathering the results of all tests and composing reports.
-The current runtime of choice is Kyua.
-
-
-Other documents
-***************
-
-* AUTHORS: List of authors and contributors for this project.
-
-* COPYING: License information.
-
-* INSTALL: Compilation and installation instructions. These is not the
- standard document shipped with many packages, so be sure to read it for
- things that are specific to ATF's build.
-
-* NEWS: List of major changes between formal, published releases.
-
-
-===========================================================================
-vim: filetype=text:textwidth=75:expandtab:shiftwidth=2:softtabstop=2
diff --git a/contrib/atf/README.md b/contrib/atf/README.md
index d245552f35c9..0513546fc7cc 100644
--- a/contrib/atf/README.md
+++ b/contrib/atf/README.md
@@ -12,36 +12,57 @@ interface** to allow both humans and automation to run the tests.
ATF-based test programs **rely on an execution engine** to be run and
this execution engine is *not* shipped with ATF.
-**[Kyua](https://github.com/jmmv/kyua/) is the engine of choice.**
+**[Kyua](https://github.com/freebsd/kyua/) is the engine of choice.**
## Download
Formal releases for source files are available for download from GitHub:
-* [atf 0.20](../../releases/tag/atf-0.20), released on February 7th, 2014.
+* [atf 0.25](../../releases/tag/atf-0.25), released on September 2nd, 2026.
## Installation
You are encouraged to install binary packages for your operating system
wherever available:
-* Fedora 20 and above: install the `atf` package with `yum install atf`.
-
* FreeBSD 10.0 and above: install the `atf` package with `pkg install atf`.
* NetBSD with pkgsrc: install the `pkgsrc/devel/atf` package.
* OpenBSD: install the `devel/atf` package with `pkg_add atf`.
+* Ubuntu: install the `libatf-dev` and `atf-sh` packages with
+ `apt install libatf-dev atf-sh`.
+
Should you want to build and install ATF from the source tree provided
-here, follow the instructions in the [INSTALL file](INSTALL).
+here, follow the instructions in the [INSTALL file](INSTALL.md).
+
+## More Reading
+
+* AUTHORS: List of authors and contributors for this project.
+
+* COPYING: License information.
+
+* INSTALL.md: Compilation and installation instructions. These is not the
+ standard document shipped with many packages, so be sure to read it for
+ things that are specific to ATF's build.
+
+* NEWS.md: List of major changes between formal, published releases.
+
+## Other documents
+
+* `AUTHORS`: List of authors and contributors for this project.
+
+* `COPYING`: License information.
+
+* `INSTALL.md`: Compilation and installation instructions. These is not the
+ standard document shipped with many packages, so be sure to read it for
+ things that are specific to ATF's build.
+
+* `NEWS.md`: List of major changes between formal, published releases.
## Support
Please use the
-[atf-discuss mailing list](https://groups.google.com/forum/#!forum/atf-discuss)
-for any support inquiries related to `atf-c`, `atf-c++` or `atf-sh`.
-
-If you have any questions on Kyua proper, please use the
-[kyua-discuss mailing list](https://groups.google.com/forum/#!forum/kyua-discuss)
-instead.
+[FreeBSD-testing@FreeBSD.org](mailto:FreeBSD-testing@FreeBSD.org) mailing list
+for any support inquiries related to `atf-c`, `atf-c++`, `atf-sh`, or `kyua`.
diff --git a/contrib/atf/atf-c++/atf-c++.3 b/contrib/atf/atf-c++/atf-c++.3
index bb83e6214622..2254d481efff 100644
--- a/contrib/atf/atf-c++/atf-c++.3
+++ b/contrib/atf/atf-c++/atf-c++.3
@@ -22,7 +22,7 @@
.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-.Dd May 11, 2025
+.Dd October 13, 2014
.Dt ATF-C++ 3
.Os
.Sh NAME
@@ -285,6 +285,8 @@ additional kernel modules in the test case's body by using the
.Fn require_kmod
function, which takes the name of a single module.
If it is not found, the test case will be automatically skipped.
+This feature is only available on
+.Fx .
.Ss Requiring programs
Aside from the
.Va require.progs
diff --git a/contrib/atf/atf-c++/check.cpp b/contrib/atf/atf-c++/check.cpp
index 5d8580023a15..78da33fa9620 100644
--- a/contrib/atf/atf-c++/check.cpp
+++ b/contrib/atf/atf-c++/check.cpp
@@ -150,5 +150,6 @@ impl::exec(const atf::process::argv_array& argva)
if (atf_is_error(err))
throw_atf_error(err);
- return std::unique_ptr< impl::check_result >(new impl::check_result(&result));
+ return std::unique_ptr< impl::check_result >(
+ new impl::check_result(&result));
}
diff --git a/contrib/atf/atf-c++/check.hpp b/contrib/atf/atf-c++/check.hpp
index 4d7f079d1ac1..bcf9cb647f29 100644
--- a/contrib/atf/atf-c++/check.hpp
+++ b/contrib/atf/atf-c++/check.hpp
@@ -71,7 +71,8 @@ class check_result {
check_result(const atf_check_result_t* result);
friend check_result test_constructor(const char* const*);
- friend std::unique_ptr< check_result > exec(const atf::process::argv_array&);
+ friend std::unique_ptr< check_result >
+ exec(const atf::process::argv_array&);
public:
//!
diff --git a/contrib/atf/atf-c++/detail/Kyuafile b/contrib/atf/atf-c++/detail/Kyuafile
index fc799e64df69..425595cef644 100644
--- a/contrib/atf/atf-c++/detail/Kyuafile
+++ b/contrib/atf/atf-c++/detail/Kyuafile
@@ -3,7 +3,6 @@ syntax("kyuafile", 1)
test_suite("atf")
atf_test_program{name="application_test"}
-atf_test_program{name="auto_array_test"}
atf_test_program{name="env_test"}
atf_test_program{name="exceptions_test"}
atf_test_program{name="fs_test"}
diff --git a/contrib/atf/atf-c++/detail/application.cpp b/contrib/atf/atf-c++/detail/application.cpp
index 37086eb3ae8c..3eeb8f966cf9 100644
--- a/contrib/atf/atf-c++/detail/application.cpp
+++ b/contrib/atf/atf-c++/detail/application.cpp
@@ -37,6 +37,7 @@ extern "C" {
#include <cstdio>
#include <cstdlib>
#include <cstring>
+#include <filesystem>
#include <iostream>
extern "C" {
@@ -205,19 +206,8 @@ impl::app::run(int argc, char* const* argv)
m_argc = argc;
m_argv = argv;
- m_argv0 = m_argv[0];
-
- m_prog_name = std::strrchr(m_argv[0], '/');
- if (m_prog_name == NULL)
- m_prog_name = m_argv[0];
- else
- m_prog_name++;
-
- // Libtool workaround: if running from within the source tree (binaries
- // that are not installed yet), skip the "lt-" prefix added to files in
- // the ".libs" directory to show the real (not temporary) name.
- if (std::strncmp(m_prog_name, "lt-", 3) == 0)
- m_prog_name += 3;
+ auto m_prog_filename = std::filesystem::path(m_argv[0]).filename();
+ m_prog_name = m_prog_filename.c_str();
const std::string bug =
std::string("This is probably a bug in ") + m_prog_name +
diff --git a/contrib/atf/atf-c++/detail/application.hpp b/contrib/atf/atf-c++/detail/application.hpp
index cdb4073ad807..ad068467ac3a 100644
--- a/contrib/atf/atf-c++/detail/application.hpp
+++ b/contrib/atf/atf-c++/detail/application.hpp
@@ -81,7 +81,6 @@ protected:
int m_argc;
char* const* m_argv;
- const char* m_argv0;
const char* m_prog_name;
std::string m_description;
std::string m_manpage;
diff --git a/contrib/atf/atf-c++/detail/auto_array.hpp b/contrib/atf/atf-c++/detail/auto_array.hpp
deleted file mode 100644
index b434a5808235..000000000000
--- a/contrib/atf/atf-c++/detail/auto_array.hpp
+++ /dev/null
@@ -1,175 +0,0 @@
-// Copyright (c) 2007 The NetBSD Foundation, Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND
-// CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-// IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY
-// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
-// IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
-// IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#if !defined(ATF_CXX_DETAIL_AUTO_ARRAY_HPP)
-#define ATF_CXX_DETAIL_AUTO_ARRAY_HPP
-
-#include <cstddef>
-
-namespace atf {
-
-// ------------------------------------------------------------------------
-// The "auto_array" class.
-// ------------------------------------------------------------------------
-
-template< class T >
-struct auto_array_ref {
- T* m_ptr;
-
- explicit auto_array_ref(T*);
-};
-
-template< class T >
-auto_array_ref< T >::auto_array_ref(T* ptr) :
- m_ptr(ptr)
-{
-}
-
-template< class T >
-class auto_array {
- T* m_ptr;
-
-public:
- auto_array(T* = NULL) throw();
- auto_array(auto_array< T >&) throw();
- auto_array(auto_array_ref< T >) throw();
- ~auto_array(void) throw();
-
- T* get(void) throw();
- const T* get(void) const throw();
- T* release(void) throw();
- void reset(T* = NULL) throw();
-
- auto_array< T >& operator=(auto_array< T >&) throw();
- auto_array< T >& operator=(auto_array_ref< T >) throw();
-
- T& operator[](int) throw();
- operator auto_array_ref< T >(void) throw();
-};
-
-template< class T >
-auto_array< T >::auto_array(T* ptr)
- throw() :
- m_ptr(ptr)
-{
-}
-
-template< class T >
-auto_array< T >::auto_array(auto_array< T >& ptr)
- throw() :
- m_ptr(ptr.release())
-{
-}
-
-template< class T >
-auto_array< T >::auto_array(auto_array_ref< T > ref)
- throw() :
- m_ptr(ref.m_ptr)
-{
-}
-
-template< class T >
-auto_array< T >::~auto_array(void)
- throw()
-{
- if (m_ptr != NULL)
- delete [] m_ptr;
-}
*** 3475 LINES SKIPPED ***