packages: Remove the tests-dev package

We don't want a tests-dev package, because this means set-devel depends
on tests-dev, which transitively depends on tests, which means you can't
install set-devel without also getting tests.

The only real "dev" files in tests-dev are from ATF (libprivateatf),
so move that to its own package and add a dependency from tests.

Also move Kyua to its own package, since this might be useful for
running tests even when the user doesn't want the whole set of base
tests installed.

Add a dependency from -tests to both -atf and -kyua, and a dependency
on -set-base, since the tests won't work without the full base system
installed.

The remaining "dev" files in tests are actually test artifacts, not real
development libraries.  Add a new NO_DEV_PACKAGE option to bsd.lib.mk,
which causes dev files to be installed in the base package instead of
creating a -dev package, and set this option for everything that
installs test libraries.

While here, add a slightly more informative description for the tests
package.

MFC after:	3 seconds
Reviewed by:	bapt, emaste
Differential Revision:	https://reviews.freebsd.org/D52597
This commit is contained in:
Lexi Winter
2025-09-18 10:13:41 +01:00
parent 7c0bc6c703
commit 9065390ddc
20 changed files with 84 additions and 12 deletions
+8
View File
@@ -27,6 +27,14 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 16.x IS SLOW:
world, or to merely disable the most expensive debugging functionality
at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
20250918:
Kyua has been moved to the FreeBSD-kyua package, and ATF has been moved
to the FreeBSD-atf* packages. If you have FreeBSD-tests installed,
these packages will be installed automatically, otherwise you should
manually install them if you need these tools.
This only affects pkgbase users.
20250912:
If SRCCONF is unset and a file named src.conf is present at
the top of the source tree, it will now be used instead of
+2
View File
@@ -24,6 +24,8 @@
# SUCH DAMAGE.
#
PACKAGE= atf
LIB_PACKAGE=
CFLAGS+= -DHAVE_CONFIG_H
WARNS?= 3
-1
View File
@@ -27,7 +27,6 @@
.include <src.opts.mk>
.include <bsd.init.mk>
PACKAGE= tests
LIB_CXX= atf-c++
PRIVATELIB= true
SHLIB_MAJOR= 2
-2
View File
@@ -1,7 +1,5 @@
.include <bsd.init.mk>
PACKAGE= tests
TESTS_SUBDIRS= detail
ATF= ${SRCTOP}/contrib/atf
-1
View File
@@ -27,7 +27,6 @@
.include <src.opts.mk>
.include <bsd.init.mk>
PACKAGE= tests
LIB= atf-c
PRIVATELIB= true
SHLIB_MAJOR= 1
-2
View File
@@ -1,7 +1,5 @@
.include <bsd.init.mk>
PACKAGE= tests
TESTS_SUBDIRS= detail
ATF= ${SRCTOP}/contrib/atf
+1
View File
@@ -6,6 +6,7 @@ SRCS= h_tls_dlopen.c
MAN=
PACKAGE= tests
NO_DEV_PACKAGE=
LIBDIR= ${TESTSBASE}/lib/libc/tls
SHLIB_MAJOR= 1
+1
View File
@@ -7,6 +7,7 @@ LIBDIR= ${TESTSBASE}/lib/libc/tls
SHLIBDIR= ${TESTSBASE}/lib/libc/tls
SHLIB_MAJOR= 1
PACKAGE= tests
NO_DEV_PACKAGE=
WITHOUT_STATIC=
WITHOUT_PROFILE=
+1
View File
@@ -1,4 +1,5 @@
PACKAGE= tests
NO_DEV_PACKAGE=
LIBXOSRC= ${SRCTOP}/contrib/libxo
+2
View File
@@ -24,6 +24,8 @@
# SUCH DAMAGE.
#
PACKAGE= atf
LIB_PACKAGE=
CFLAGS+= -DHAVE_CONFIG_H
WARNS?= 3
-1
View File
@@ -30,7 +30,6 @@
ATF= ${SRCTOP}/contrib/atf
.PATH: ${ATF}/atf-sh
PACKAGE= tests
PROG_CXX= atf-check
SRCS= atf-check.cpp
MAN= atf-check.1
-1
View File
@@ -1,7 +1,6 @@
.include <src.opts.mk>
.include <bsd.init.mk>
PACKAGE= tests
PROG_CXX= atf_pytest_wrapper
SRCS= atf_pytest_wrapper.cpp
MAN=
-1
View File
@@ -30,7 +30,6 @@
ATF= ${SRCTOP}/contrib/atf
.PATH: ${ATF}/atf-sh
PACKAGE= tests
PROG_CXX= atf-sh
SRCS= atf-sh.cpp
MAN= atf-sh.1 atf-sh.3
+1
View File
@@ -1,2 +1,3 @@
PACKAGE?= tests
NO_DEV_PACKAGE=
TESTSDIR?= ${TESTSBASE}/libexec/rtld-elf
+8
View File
@@ -0,0 +1,8 @@
comment = "Automated Testing Framework"
desc = <<EOD
The Automated Testing Framework (ATF) is a collection of libraries to implement
test programs in a variety of languages. These libraries all offer similar
functionality and any test program written with them exposes a consistent user
interface.
EOD
+20
View File
@@ -0,0 +1,20 @@
comment = "Testing framework for infrastructure software"
desc = <<EOD
Kyua is a testing framework for infrastructure software, originally designed
to equip BSD-based operating systems with a test suite. This means that Kyua
is lightweight and simple, and that Kyua integrates well with various build
systems and continuous integration frameworks.
Kyua features an expressive test suite definition language, a safe runtime
engine for test suites and a powerful report generation engine.
Kyua is for both developers and users, from the developer applying a simple
fix to a library to the system administrator deploying a new release on a
production machine.
Kyua is able to execute test programs written with a plethora of testing
libraries and languages. The test program library of choice is ATF, which
kyua's design originated from. However, framework-less test programs and
TAP-compliant test programs can also be executed through kyua.
EOD
+25 -2
View File
@@ -1,8 +1,31 @@
comment = "Test Suite"
comment = "Test suite"
desc = <<EOD
Test Suite
The test suite, installed in /usr/tests, allows the functionality of the
installed system to be verified.
EOD
deps {
# Nearly all the tests require atf to run.
"atf": {
version = "${VERSION}"
origin = "base"
},
# The test framework requires Kyua.
"kyua": {
version = "${VERSION}"
origin = "base"
},
# Since the purpose of the tests is to test the base system, the base
# system must be installed.
"set-base": {
version = "${VERSION}"
origin = "base"
}
}
annotations {
set = tests
}
+11
View File
@@ -74,7 +74,14 @@ LIB_TAG_ARGS= ${TAG_ARGS}
TAG_ARGS= -T ${TAGS:ts,:[*]}
DBG_TAG_ARGS= ${TAG_ARGS},dbg
# Usually we want to put development files (e.g., static libraries) into a
# separate -dev packages but for a few cases, like tests, that's not wanted,
# so allow the caller to disable it by setting NO_DEV_PACKAGE.
.if !defined(NO_DEV_PACKAGE)
DEV_TAG_ARGS= ${TAG_ARGS},dev
.else
DEV_TAG_ARGS= ${TAG_ARGS}
.endif
.endif # !defined(NO_ROOT)
# ELF hardening knobs
@@ -450,7 +457,11 @@ LINKGRP?= ${LIBGRP}
LINKMODE?= ${LIBMODE}
SYMLINKOWN?= ${LIBOWN}
SYMLINKGRP?= ${LIBGRP}
.if !defined(NO_DEV_PACKAGE)
LINKTAGS= dev${_COMPAT_TAG}
.else
LINKTAGS= ${_COMPAT_TAG}
.endif
.include <bsd.links.mk>
.if ${MK_MAN} != "no" && !defined(LIBRARIES_ONLY)
+3
View File
@@ -16,6 +16,9 @@ LOCALBASE?= /usr/local
TESTSDIR?= ${TESTSBASE}/${RELDIR:H}
PACKAGE?= tests
# Prevent creating a -dev package for tests. Sometimes tests include static
# libraries or other artifacts which are not actually "development" files.
NO_DEV_PACKAGE=
FILESGROUPS+= ${PACKAGE}FILES
${PACKAGE}FILESPACKAGE= ${PACKAGE}
+1 -1
View File
@@ -10,7 +10,7 @@ KYUA_VERSION= 0.13
KYUA_SRCDIR= ${SRCTOP}/contrib/kyua
.PATH: ${KYUA_SRCDIR}
PACKAGE= tests
PACKAGE= kyua
PROG_CXX= kyua
SRCS= main.cpp
LIBADD= lutok sqlite3 util