From 5b5a881992ee44ec5963354fbc2460dfc28cb345 Mon Sep 17 00:00:00 2001 From: Undefine Date: Sat, 10 Jan 2026 16:21:01 +0100 Subject: [PATCH] LibTest: Fix custom assertion handler on FreeBSD and OpenBSD Those systems expect sigjmp_buf to be passed to sigsetjmp / siglongjmp instead of jmp_buf. --- Libraries/LibTest/AssertionHandler.cpp | 4 ++-- Libraries/LibTest/AssertionHandler.h | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Libraries/LibTest/AssertionHandler.cpp b/Libraries/LibTest/AssertionHandler.cpp index 9e97920f02..96a88b0805 100644 --- a/Libraries/LibTest/AssertionHandler.cpp +++ b/Libraries/LibTest/AssertionHandler.cpp @@ -8,11 +8,11 @@ namespace Test { -static jmp_buf g_assert_jmp_buf = {}; +static libtest_jmp_buf g_assert_jmp_buf = {}; static bool g_assert_jmp_buf_valid = false; -jmp_buf& assertion_jump_buffer() { return g_assert_jmp_buf; } +libtest_jmp_buf& assertion_jump_buffer() { return g_assert_jmp_buf; } void set_assertion_jump_validity(bool validity) { diff --git a/Libraries/LibTest/AssertionHandler.h b/Libraries/LibTest/AssertionHandler.h index abe963aef4..945f0a80e9 100644 --- a/Libraries/LibTest/AssertionHandler.h +++ b/Libraries/LibTest/AssertionHandler.h @@ -18,9 +18,15 @@ # define LIBTEST_LONGJMP longjmp #endif +#if defined(AK_OS_FREEBSD) || defined(AK_OS_OPENBSD) +using libtest_jmp_buf = sigjmp_buf; +#else +using libtest_jmp_buf = jmp_buf; +#endif + namespace Test { -jmp_buf& assertion_jump_buffer(); +libtest_jmp_buf& assertion_jump_buffer(); void set_assertion_jump_validity(bool); bool assertion_jump_validity();