# Install atf with Homebrew, apk, apt, dnf, MacPorts, Nix

Automated testing framework. Version 0.23 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:atf
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install atf
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install atf
```

  Evidence: MacPorts ports tree: devel/atf/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add atf
```

  Evidence: Alpine Linux edge package indexes: atf from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install atf-sh
```

  Evidence: Debian stable package indexes: atf-sh from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install atf-tests
```

  Evidence: Fedora Rawhide package metadata: atf-tests from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#atf
```

  Evidence: nixpkgs package indexes: pkgs/by-name/at/atf/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:atf
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/atf>
- **Version:** 0.23
- **Source summary:** Automated testing framework
- **Homepage:** <https://github.com/freebsd/atf>
- **Repository:** <https://github.com/freebsd/atf>
- **Upstream docs:** <https://github.com/freebsd/atf#readme>
- **License:** BSD-2-Clause
- **Source archive:** <https://github.com/freebsd/atf/releases/download/atf-0.23/atf-0.23.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- atf-sh (cli)
- atf-sh (alias)

## Build dependencies

- autoconf
- automake
- libtool

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.23
- Local data: ok
- Upstream repository: https://github.com/freebsd/atf
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

ATF, the Automated Testing Framework, is a small but historically important Unix testing framework for writing test programs in C, C++, and POSIX shell. Its value is less about being a fashionable standalone test runner and more about providing a consistent test-program API and command-line interface for base-system and ports/package test suites.

### Project history

The official README describes ATF as libraries for C, C++, and POSIX shell, with ATF-based tests relying on an external execution engine rather than shipping one itself. The same README identifies Kyua as the preferred execution engine, which reflects ATF's later role as the test-definition layer inside a larger BSD testing stack.

The NEWS file records a major 2014 transition: version 0.19 moved project hosting from Google Code, where ATF had been a Kyua subproject, to GitHub as a first-class project. That release also separated deprecated tools such as atf-run and atf-report from the maintained libraries, foreshadowing the modern split where Kyua handles execution.

### Adoption history

ATF is strongly associated with BSD operating-system testing. The README explicitly recommends binary packages for FreeBSD, NetBSD/pkgsrc, OpenBSD, and Ubuntu, and the NEWS file calls out FreeBSD test-suite support in the 0.19 release. That made ATF familiar to package maintainers who care about base-system regression tests, portable shell tests, and tests shipped alongside system components.

Its package-manager footprint is broad for such a specialized tool: the input lists packages in Homebrew, MacPorts, pkgsrc-adjacent systems, Debian/Ubuntu, Fedora, Nix, and Alpine. That packaging spread matters because ATF tests are often consumed by downstream distributions rather than only by application developers.

### How it is used

ATF is used to write test cases in C, C++, or shell that expose a consistent interface to humans and automation. In practice, users commonly install ATF alongside Kyua, write tests with atf-c, atf-c++, or atf-sh, and let Kyua discover and run them.

The Homebrew formula exposes at least the atf-sh executable, which is the part many command-line package users encounter first when running or authoring shell-based tests.

### Why package nerds care

ATF is package-nerd infrastructure: it is not glamorous, but it sits in the plumbing between source trees, operating-system test suites, and downstream package validation. Its removal of the old runner tools in favor of Kyua is the sort of split that explains why different packages may depend on atf libraries, atf-sh, or Kyua separately.

The long quiet period between the 2014 0.21 release and later 2024/2025 releases is also notable for maintainers: old system-test tooling can remain relevant for a decade when it is embedded in OS and packaging workflows.

### Timeline

- 2014: ATF 0.19 moved from Google Code to GitHub and separated deprecated runner/reporting tools.
- 2014: ATF 0.20 removed the deprecated tools from the maintained release line.
- 2014: ATF 0.21 restored and refreshed manual-page documentation and improved FreeBSD-current compatibility.
- 2024: ATF 0.22 refreshed the codebase for modern C++ and build-system compatibility.
- 2025: ATF 0.23 fixed release tarball generation and other build/test issues.

### Related projects

- Kyua is the preferred execution engine for ATF-based tests.
- FreeBSD's test suite is a major downstream context for ATF.
- pkgsrc, OpenBSD ports, Debian/Ubuntu, and other package systems distribute ATF or ATF shell tooling.

### Sources

- <https://github.com/freebsd/atf#readme>
- <https://raw.githubusercontent.com/freebsd/atf/master/NEWS>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** atf
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - atf-sh - 0.22-3: normalized package name match | Debian stable package indexes: atf-sh from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Automated Test Framework (shell library) | https://github.com/freebsd/atf
- Debian apt - libatf-c++-2 - 0.22-3: normalized package name match | Debian stable package indexes: libatf-c++-2 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Automated Test Framework (shared C++ library) | https://github.com/freebsd/atf
- Debian apt - libatf-c-1 - 0.22-3: normalized package name match | Debian stable package indexes: libatf-c-1 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Automated Test Framework (shared C library) | https://github.com/freebsd/atf
- Debian apt - libatf-dev - 0.22-3: normalized package name match | Debian stable package indexes: libatf-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Automated Test Framework (development files) | https://github.com/freebsd/atf
- Nix - atf: normalized package name match | nixpkgs package indexes: pkgs/by-name/at/atf/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - atf-sh - 0.21-6build4: normalized package name match | Ubuntu 24.04 LTS package indexes: atf-sh from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Automated Test Framework (shell library) | https://github.com/jmmv/atf
- Ubuntu apt - libatf-c++-2 - 0.21-6build4: normalized package name match | Ubuntu 24.04 LTS package indexes: libatf-c++-2 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Automated Test Framework (shared C library) | https://github.com/jmmv/atf
- Ubuntu apt - libatf-c-1 - 0.21-6build4: normalized package name match | Ubuntu 24.04 LTS package indexes: libatf-c-1 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Automated Test Framework (shared C++ library) | https://github.com/jmmv/atf
- Ubuntu apt - libatf-dev - 0.21-6build4: normalized package name match | Ubuntu 24.04 LTS package indexes: libatf-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Automated Test Framework (development files) | https://github.com/jmmv/atf
- apk - atf - 0.23-r0: normalized package name match | Alpine Linux edge package indexes: atf from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | libraries to write tests in C, C++ and shell | https://github.com/freebsd/atf
- apk - atf-dev - 0.23-r0: normalized package name match | Alpine Linux edge package indexes: atf-dev from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | libraries to write tests in C, C++ and shell (development files) | https://github.com/freebsd/atf
- apk - atf-doc - 0.23-r0: normalized package name match | Alpine Linux edge package indexes: atf-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | libraries to write tests in C, C++ and shell (documentation) | https://github.com/freebsd/atf
- apk - atf-static - 0.23-r0: normalized package name match | Alpine Linux edge package indexes: atf-static from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | libraries to write tests in C, C++ and shell (static library) | https://github.com/freebsd/atf
- dnf - atf-tests - 0.23-4.fc44: normalized package name match | Fedora Rawhide package metadata: atf-tests from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Automated Testing Framework - Test suite | https://github.com/freebsd/atf
- dnf - libatf-c - 0.23-4.fc44: normalized package name match | Fedora Rawhide package metadata: libatf-c from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Automated Testing Framework - C bindings | https://github.com/freebsd/atf
- dnf - libatf-c++ - 0.23-4.fc44: normalized package name match | Fedora Rawhide package metadata: libatf-c++ from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Automated Testing Framework - C++ bindings | https://github.com/freebsd/atf


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [autoconf](https://www.automicvault.com/pkg/brew/autoconf/) - Build dependency declared by Homebrew.
- [automake](https://www.automicvault.com/pkg/brew/automake/) - Build dependency declared by Homebrew.
- [libtool](https://www.automicvault.com/pkg/brew/libtool/) - Build dependency declared by Homebrew.
- [kyua](https://www.automicvault.com/pkg/brew/kyua/) - Popular package that depends on this formula.
- [adb-enhanced](https://www.automicvault.com/pkg/brew/adb-enhanced/) - Shares av.db curated category or tags: cli, developer-tools, testing.
- [allure](https://www.automicvault.com/pkg/brew/allure/) - Shares av.db curated category or tags: cli, developer-tools, testing.
- [anchor](https://www.automicvault.com/pkg/brew/anchor/) - Shares av.db curated category or tags: cli, developer-tools, framework.
- [artillery](https://www.automicvault.com/pkg/brew/artillery/) - Shares av.db curated category or tags: cli, developer-tools, testing.
- [autobench](https://www.automicvault.com/pkg/brew/autobench/) - Shares av.db curated category or tags: cli, developer-tools, testing.
- [autocannon](https://www.automicvault.com/pkg/brew/autocannon/) - Shares av.db curated category or tags: cli, developer-tools, testing.
- [bash_unit](https://www.automicvault.com/pkg/brew/bash-unit/) - Shares av.db curated category or tags: cli, developer-tools, testing.
- [bashunit](https://www.automicvault.com/pkg/brew/bashunit/) - Shares av.db curated category or tags: cli, developer-tools, testing.
- [bats-core](https://www.automicvault.com/pkg/brew/bats-core/) - Local package facts share a topical domain. Shared terms: automated, cli, developer, developer-tools, testing.

## Combined YAML source

View the package source record on GitHub. [combined/atf.yml](https://github.com/automic-vault/db/blob/main/combined/atf.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
