Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

selftests/nolibc: only run constructor tests on nolibc

The nolibc testsuite can be run against other libcs to test for
interoperability. Some aspects of the constructor execution are not
standardized and musl does not provide all tested feature, for one it
does not provide arguments to the constructors, anymore?

Skip the constructor tests on non-nolibc configurations.

Acked-by: Willy Tarreau <w@1wt.eu>
Link: https://lore.kernel.org/r/20250212-nolibc-test-constructor-v1-1-c963875b3da4@weissschuh.net
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>

+2 -2
+2 -2
tools/testing/selftests/nolibc/nolibc-test.c
··· 738 738 CASE_TEST(environ_HOME); EXPECT_PTRNZ(1, getenv("HOME")); break; 739 739 CASE_TEST(auxv_addr); EXPECT_PTRGT(test_auxv != (void *)-1, test_auxv, brk); break; 740 740 CASE_TEST(auxv_AT_UID); EXPECT_EQ(1, getauxval(AT_UID), getuid()); break; 741 - CASE_TEST(constructor); EXPECT_EQ(1, constructor_test_value, 2); break; 741 + CASE_TEST(constructor); EXPECT_EQ(is_nolibc, constructor_test_value, 2); break; 742 742 CASE_TEST(linkage_errno); EXPECT_PTREQ(1, linkage_test_errno_addr(), &errno); break; 743 - CASE_TEST(linkage_constr); EXPECT_EQ(1, linkage_test_constructor_test_value, 6); break; 743 + CASE_TEST(linkage_constr); EXPECT_EQ(is_nolibc, linkage_test_constructor_test_value, 6); break; 744 744 case __LINE__: 745 745 return ret; /* must be last */ 746 746 /* note: do not set any defaults so as to permit holes above */