git: 6f3445006aa0 - main - [tests] lib/libc/gen:assert_test: skip tests when NDEBUG set

From: Enji Cooper <ngie_at_FreeBSD.org>
Date: Tue, 22 Sep 2026 06:30:41 UTC
The branch main has been updated by ngie:

URL: https://cgit.FreeBSD.org/src/commit/?id=6f3445006aa05550f14af65b04276c3d25169941

commit 6f3445006aa05550f14af65b04276c3d25169941
Author:     Enji Cooper <ngie@FreeBSD.org>
AuthorDate: 2026-09-22 06:22:57 +0000
Commit:     Enji Cooper <ngie@FreeBSD.org>
CommitDate: 2026-09-22 06:30:30 +0000

    [tests] lib/libc/gen:assert_test: skip tests when NDEBUG set
    
    In the event that NDEBUG is specified in CFLAGS--which is most likely
    triggered via `MK_ASSERT_DEBUG` == "no" -- all assert(3) statements are
    optimized out by design. This breaks the assert(3) tests as they
    specifically rely on assert(3) actually raising a `SIGABRT` instead of
    quietly succeeding.
    
    Skip both tests if `NDEBUG` is set. There's no sense running the
    `assert(true)` test if the result could instead be a false positive.
    
    MFC after:      2 weeks
---
 contrib/netbsd-tests/lib/libc/gen/t_assert.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/contrib/netbsd-tests/lib/libc/gen/t_assert.c b/contrib/netbsd-tests/lib/libc/gen/t_assert.c
index ce73015142d6..b4023223b446 100644
--- a/contrib/netbsd-tests/lib/libc/gen/t_assert.c
+++ b/contrib/netbsd-tests/lib/libc/gen/t_assert.c
@@ -43,6 +43,18 @@ __RCSID("$NetBSD: t_assert.c,v 1.3 2017/01/10 15:17:57 christos Exp $");
 #include <string.h>
 #include <unistd.h>
 
+#ifdef	__FreeBSD__
+/* TODO: upstream this. */
+static void
+skip_if_ndebug_set(void)
+{
+
+#ifdef	NDEBUG
+	atf_tc_skip("Testcase requires code to be compiled without -DNDEBUG.");
+#endif
+}
+#endif
+
 static void
 disable_corefile(void)
 {
@@ -74,6 +86,10 @@ ATF_TC_BODY(assert_false, tc)
 	pid_t pid;
 	int sta;
 
+#ifdef	__FreeBSD__
+	skip_if_ndebug_set();
+#endif
+
 	pid = fork();
 	ATF_REQUIRE(pid >= 0);
 
@@ -112,6 +128,10 @@ ATF_TC_BODY(assert_true, tc)
 	pid_t pid;
 	int sta;
 
+#ifdef	__FreeBSD__
+	skip_if_ndebug_set();
+#endif
+
 	pid = fork();
 	ATF_REQUIRE(pid >= 0);