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

From: Mark Johnston <markj_at_freebsd.org>
Date: Fri, 30 Oct 2026 02:20:22 UTC
On Thu, Oct 29, 2026 at 11:32:53PM +0000, Enji Cooper wrote:
> 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

Please follow the guidelines for commit log messages:
https://docs.freebsd.org/en/articles/committers-guide/#_prefix_the_subject_line_with_a_component_if_applicable

>     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.

Below this there are some TEST_METADATA.functional configuration
variables still set.

After this commit I see a whole bunch of newly skipped tests, it looks
like a regression:

  lib/googletest/gtest_main/googletest-printers-test:PrintStlContainerTest.StdSpan
  sys/capsicum/capsicum-test:Capability.NoBypassDACIfRoot
  sys/capsicum/capsicum-test:Capability.SyscallAtIfRoot
  sys/capsicum/capsicum-test:ForkedWithFiles_AllowedSocketSyscallsIfRoot._
  sys/capsicum/capsicum-test:Pdfork.OtherUserIfRootForked
  sys/fs/fusefs/default_permissions:Access.eacces
  sys/fs/fusefs/default_permissions:Access.eacces_no_cached_attrs
  sys/fs/fusefs/default_permissions:Access.ok
  sys/fs/fusefs/default_permissions:Chgrp.clear_suid
  sys/fs/fusefs/default_permissions:Chgrp.eperm
  sys/fs/fusefs/default_permissions:Chgrp.ok
  sys/fs/fusefs/default_permissions:Chown.chown_to_self
  sys/fs/fusefs/default_permissions:Chown.clear_suid
  sys/fs/fusefs/default_permissions:Chown.eperm
  sys/fs/fusefs/default_permissions:CopyFileRange.clear_sgid
  sys/fs/fusefs/default_permissions:CopyFileRange.clear_suid
  sys/fs/fusefs/default_permissions:Create.eacces
  sys/fs/fusefs/default_permissions:Create.ok
  sys/fs/fusefs/default_permissions:Deleteextattr.eacces
  sys/fs/fusefs/default_permissions:Deleteextattr.ok
  sys/fs/fusefs/default_permissions:Deleteextattr.system
  sys/fs/fusefs/default_permissions:Deleteextattr.user
  sys/fs/fusefs/default_permissions:Fspacectl.clear_sgid
  sys/fs/fusefs/default_permissions:Fspacectl.clear_suid
  sys/fs/fusefs/default_permissions:Fspacectl.posix_fallocate_of_newly_created_file
  sys/fs/fusefs/default_permissions:Getextattr.eacces
  sys/fs/fusefs/default_permissions:Getextattr.ok
  sys/fs/fusefs/default_permissions:Getextattr.system
  sys/fs/fusefs/default_permissions:Listextattr.eacces
  sys/fs/fusefs/default_permissions:Listextattr.ok
  sys/fs/fusefs/default_permissions:Listextattr.system
  sys/fs/fusefs/default_permissions:Lookup.eacces
  sys/fs/fusefs/default_permissions:Open.eacces
  sys/fs/fusefs/default_permissions:Open.ok
  sys/fs/fusefs/default_permissions:PosixFallocate.clear_sgid
  sys/fs/fusefs/default_permissions:PosixFallocate.clear_suid
  sys/fs/fusefs/default_permissions:PosixFallocate.posix_fallocate_of_newly_created_file
  sys/fs/fusefs/default_permissions:Read.atime_during_close
  sys/fs/fusefs/default_permissions:Rename.eacces_on_dstdir_for_creating
  sys/fs/fusefs/default_permissions:Rename.eacces_on_dstdir_for_removing
  sys/fs/fusefs/default_permissions:Rename.eacces_on_srcdir
  sys/fs/fusefs/default_permissions:Rename.eperm_for_subdirectory
  sys/fs/fusefs/default_permissions:Rename.eperm_on_sticky_dstdir
  sys/fs/fusefs/default_permissions:Rename.eperm_on_sticky_srcdir
  sys/fs/fusefs/default_permissions:Rename.ok
  sys/fs/fusefs/default_permissions:Rename.ok_to_remove_src_because_of_stickiness
  sys/fs/fusefs/default_permissions:Rename.subdirectory_to_same_dir
  sys/fs/fusefs/default_permissions:Setattr.eacces
  sys/fs/fusefs/default_permissions:Setattr.ftruncate_of_newly_created_file
  sys/fs/fusefs/default_permissions:Setattr.ok
  sys/fs/fusefs/default_permissions:Setattr.sgid_by_non_group_member
  sys/fs/fusefs/default_permissions:Setattr.sticky_regular_file
  sys/fs/fusefs/default_permissions:Setextattr.eacces
  sys/fs/fusefs/default_permissions:Setextattr.ok
  sys/fs/fusefs/default_permissions:Setextattr.system
  sys/fs/fusefs/default_permissions:Setextattr.user
  sys/fs/fusefs/default_permissions:Unlink.cached_unwritable_directory
  sys/fs/fusefs/default_permissions:Unlink.ok
  sys/fs/fusefs/default_permissions:Unlink.sticky_directory
  sys/fs/fusefs/default_permissions:Unlink.sticky_directory_io_during_getattr
  sys/fs/fusefs/default_permissions:Unlink.unwritable_directory
  sys/fs/fusefs/default_permissions:Utimensat.utime_now
  sys/fs/fusefs/default_permissions:Utimensat.utime_omit
  sys/fs/fusefs/default_permissions:Write.clear_sgid
  sys/fs/fusefs/default_permissions:Write.clear_suid
  sys/fs/fusefs/default_permissions:Write.recursion_panic_while_clearing_suid
  sys/fs/fusefs/locks:Flock.DISABLED_eagain
  sys/fs/fusefs/locks:Flock.DISABLED_set
  sys/fs/fusefs/mknod:Mknod.DISABLED_whiteout
  sys/fs/fusefs/notify:N/Notify.DISABLED_store_nonexistent/0
  sys/fs/fusefs/notify:N/Notify.DISABLED_store_nonexistent/1
  sys/fs/fusefs/notify:N/Notify.DISABLED_store_with_blank_cache/0
  sys/fs/fusefs/notify:N/Notify.DISABLED_store_with_blank_cache/1
  sys/fs/fusefs/open:Open.DISABLED_o_append
  sys/fs/fusefs/open:Open.DISABLED_o_direct
  sys/fs/fusefs/open:Open.DISABLED_o_trunc
  sys/fs/fusefs/release:Release.DISABLED_flags
  sys/fs/fusefs/write:AioWrite.DISABLED_aio_write