On Wed, Feb 25, 2026 at 07:14:50PM +0800, Sun Jian wrote:
> TEST_F() allocates and registers its struct __test_metadata via mmap()
> inside its constructor, and only then assigns the
> _##fixture_##test##_object pointer.
> 
> XFAIL_ADD() runs in a constructor too and reads
> _##fixture_##test##_object to initialize xfail->test. If XFAIL_ADD runs
> first, xfail->test can be NULL and the expected failure will be reported
> as FAIL.
> 
> Use constructor priorities to ensure TEST_F registration runs before
> XFAIL_ADD, without adding extra state or runtime lookups.
> 
> Fixes: 2709473c9386 ("selftests: kselftest_harness: support using xfail")
> Signed-off-by: Sun Jian <[email protected]>
> ---
> v3:
>   - Move KSELFTEST_PRIO_* definitions above the TEST_SIGNAL() kdoc block.
> 
> v2:
>   - Drop the lazy string-matching approach.
>   - Use constructor priorities to enforce initialization order.
>   Link:
>     
> https://lore.kernel.org/all/[email protected]/
> 
> v1:
>   Link:
>     
> https://lore.kernel.org/all/[email protected]/
> ---
>  tools/testing/selftests/kselftest_harness.h | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

FYI there is a selftest for the harness in
tools/testing/selftests/kselftest_harness/harness-selftest.c .
You could update this with your usecase to make sure, that this functionality
keeps working.

(...)

Reply via email to