git: 3fb03fb35b20 - main - [tests] switch GoogleTest tests to `googletest` interface

From: Enji Cooper <ngie_at_FreeBSD.org>
Date: Thu, 29 Oct 2026 23:32:53 UTC
The branch main has been updated by ngie:

URL: https://cgit.FreeBSD.org/src/commit/?id=3fb03fb35b20d259e0a3a07fc48f2ecc3c5da6e8

commit 3fb03fb35b20d259e0a3a07fc48f2ecc3c5da6e8
Author:     Enji Cooper <ngie@FreeBSD.org>
AuthorDate: 2026-10-07 18:53:15 +0000
Commit:     Enji Cooper <ngie@FreeBSD.org>
CommitDate: 2026-10-29 23:32:11 +0000

    [tests] switch GoogleTest tests to `googletest` interface
    
    The new `googletest` kyua test interface--added in 0.15.0 and fixed in
    0.15.1--allows tests to be executed and handled in a more fine-grained
    manner than the way it was prior to this commit.
    
    This change deletes the `capsicum-test` ATF wrapper script,
    `functional.sh`, and all supporting logic in `googletest.test.mk` as
    well as this change makes that logic unnecessary.
    
    MFC after:      1 month
    MFC with:       b68969979d6b ("contrib/kyua: update to 0.15.1")
---
 share/mk/googletest.test.mk      | 11 +-------
 tests/sys/capsicum/Makefile      |  1 -
 tests/sys/capsicum/functional.sh | 60 ----------------------------------------
 3 files changed, 1 insertion(+), 71 deletions(-)

diff --git a/share/mk/googletest.test.mk b/share/mk/googletest.test.mk
index 026f6dcacce3..b21576112a78 100644
--- a/share/mk/googletest.test.mk
+++ b/share/mk/googletest.test.mk
@@ -6,10 +6,6 @@
 # GoogleTest is a C++ test framework, thus, it does not describe/articulate how
 # to write tests in other languages, e.g., C or shell, unlike the ATF, plain,
 # and TAP raw test interfaces.
-#
-# For now this is a thin wrapper around the `plain` test interface, but in the
-# future this will rely on a newer version of kyua which will integrate in
-# GoogleTest support.
 
 .if !target(__<bsd.test.mk>__)
 .error googletest.test.mk cannot be included directly.
@@ -34,13 +30,8 @@ BINDIR.${_T}= ${TESTSDIR}
 CXXFLAGS.${_T}+= ${GTESTS_CXXFLAGS}
 MAN.${_T}?= # empty
 SRCS.${_T}?= ${_T}.cc
-.if !empty(GTESTS_WRAPPER_SH.${_T})
-# A stopgap/workaround to let kyua execute test case one by one
-ATF_TESTS_SH+= ${GTESTS_WRAPPER_SH.${_T}}
-.else
 _TESTS+= ${_T}
-TEST_INTERFACE.${_T}= plain
-.endif
+TEST_INTERFACE.${_T}= googletest
 
 .endfor
 .endif
diff --git a/tests/sys/capsicum/Makefile b/tests/sys/capsicum/Makefile
index a8f72d399af9..788fa9f9394c 100644
--- a/tests/sys/capsicum/Makefile
+++ b/tests/sys/capsicum/Makefile
@@ -10,7 +10,6 @@ CFLAGS+=	-I${SRCTOP}/tests
 .if ${MK_GOOGLETEST} != no
 
 GTESTS+=	capsicum-test
-GTESTS_WRAPPER_SH.capsicum-test=	functional
 # This test script runs the same test suite twice, once as root and once as an
 # unprivileged user.  Serialize them since some tests access global namespaces,
 # e.g., mqueuefs, and can trample on each other.
diff --git a/tests/sys/capsicum/functional.sh b/tests/sys/capsicum/functional.sh
deleted file mode 100755
index 8d4a7eef2dec..000000000000
--- a/tests/sys/capsicum/functional.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#-
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright (c) 2020 The FreeBSD Foundation
-#
-# This software was developed by Li-Wen Hsu <lwhsu@FreeBSD.org>
-# under sponsorship from the FreeBSD Foundation.
-#
-# 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 AUTHOR 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 AUTHOR 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.
-#
-
-CAPSICUM_TEST_BIN=capsicum-test
-
-atf_test_case "test_root"
-test_root_head() {
-
-	atf_set descr 'Run capsicum-test as root'
-	atf_set require.user root
-}
-
-test_root_body() {
-	atf_check -s exit:0 -o match:PASSED -e ignore \
-		"$(atf_get_srcdir)/${CAPSICUM_TEST_BIN}" -u "$(id -u tests)"
-}
-
-atf_test_case "test_unprivileged"
-test_unprivileged_head() {
-
-	atf_set descr 'Run capsicum-test as an unprivileged user'
-	atf_set require.user unprivileged
-}
-
-test_unprivileged_body() {
-	atf_check -s exit:0 -o match:PASSED -e ignore \
-		"$(atf_get_srcdir)/${CAPSICUM_TEST_BIN}" -u "$(id -u)"
-}
-
-atf_init_test_cases() {
-	atf_add_test_case test_root
-	atf_add_test_case test_unprivileged
-}