Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Sep 2025 18:42:25 GMT
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 215a06541869 - main - tests/sys/netlink: use require.kmods property instead of ad-hoc checks
Message-ID:  <202509051842.585IgP2G096471@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=215a0654186926b2e4497d83f3eb45b5eefcb23f

commit 215a0654186926b2e4497d83f3eb45b5eefcb23f
Author:     Siva Mahadevan <me@svmhdvn.name>
AuthorDate: 2025-07-21 13:25:26 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-09-05 18:42:22 +0000

    tests/sys/netlink: use require.kmods property instead of ad-hoc checks
    
    Signed-off-by: Siva Mahadevan <me@svmhdvn.name>
    Sponsored by: The FreeBSD Foundation
    Reviewed by: imp
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1780
---
 tests/sys/netlink/netlink_socket.c   | 27 ++++++++++++++++++++-------
 tests/sys/netlink/test_snl.c         | 19 ++++---------------
 tests/sys/netlink/test_snl_generic.c | 16 +++-------------
 3 files changed, 27 insertions(+), 35 deletions(-)

diff --git a/tests/sys/netlink/netlink_socket.c b/tests/sys/netlink/netlink_socket.c
index 6dcc894b6695..3c2c5f857591 100644
--- a/tests/sys/netlink/netlink_socket.c
+++ b/tests/sys/netlink/netlink_socket.c
@@ -116,7 +116,11 @@ fullsocket(void)
 	return (fd);
 }
 
-ATF_TC_WITHOUT_HEAD(overflow);
+ATF_TC(overflow);
+ATF_TC_HEAD(overflow, tc)
+{
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
+}
 ATF_TC_BODY(overflow, tc)
 {
 	char buf[BUFLEN];
@@ -143,7 +147,11 @@ ATF_TC_BODY(overflow, tc)
 	ATF_REQUIRE(timer_done == 0);
 }
 
-ATF_TC_WITHOUT_HEAD(peek);
+ATF_TC(peek);
+ATF_TC_HEAD(peek, tc)
+{
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
+}
 ATF_TC_BODY(peek, tc)
 {
 	char *buf;
@@ -185,7 +193,11 @@ cmsg_check(struct msghdr *msg)
 	ATF_REQUIRE((msg->msg_flags & MSG_CTRUNC) == 0);
 }
 
-ATF_TC_WITHOUT_HEAD(sizes);
+ATF_TC(sizes);
+ATF_TC_HEAD(sizes, tc)
+{
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
+}
 ATF_TC_BODY(sizes, tc)
 {
 #define	NLMSG_LARGE 2048		/* XXX: match kernel nl_buf */
@@ -273,7 +285,11 @@ nla_RTA_DST(struct nlattr *start, ssize_t len)
  * Check that NETLINK_ADD_MEMBERSHIP subscribes us.  Add & delete a temporary
  * route and check if announcements came in.
  */
-ATF_TC_WITHOUT_HEAD(membership);
+ATF_TC(membership);
+ATF_TC_HEAD(membership, tc)
+{
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
+}
 ATF_TC_BODY(membership, tc)
 {
 	struct {
@@ -329,9 +345,6 @@ ATF_TC_BODY(membership, tc)
 
 ATF_TP_ADD_TCS(tp)
 {
-	if (modfind("netlink") == -1)
-		atf_tc_skip("netlink module not loaded");
-
 	ATF_TP_ADD_TC(tp, overflow);
 	ATF_TP_ADD_TC(tp, peek);
 	ATF_TP_ADD_TC(tp, sizes);
diff --git a/tests/sys/netlink/test_snl.c b/tests/sys/netlink/test_snl.c
index 040414a96e2c..3990aa0b075d 100644
--- a/tests/sys/netlink/test_snl.c
+++ b/tests/sys/netlink/test_snl.c
@@ -25,13 +25,6 @@ static const struct snl_hdr_parser *snl_all_route_parsers[] = {
 	&_addr_fbsd_parser, &snl_rtm_addr_parser, &_nh_fbsd_parser, &snl_nhmsg_parser,
 };
 
-static void
-require_netlink(void)
-{
-	if (modfind("netlink") == -1)
-		atf_tc_skip("netlink module not loaded");
-}
-
 ATF_TC(snl_verify_core_parsers);
 ATF_TC_HEAD(snl_verify_core_parsers, tc)
 {
@@ -60,6 +53,7 @@ ATF_TC(snl_parse_errmsg_capped);
 ATF_TC_HEAD(snl_parse_errmsg_capped, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Tests snl(3) correctly parsing capped errors");
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
 }
 
 ATF_TC_BODY(snl_parse_errmsg_capped, tc)
@@ -67,8 +61,6 @@ ATF_TC_BODY(snl_parse_errmsg_capped, tc)
 	struct snl_state ss;
 	struct snl_writer nw;
 
-	require_netlink();
-
 	if (!snl_init(&ss, NETLINK_ROUTE))
 		atf_tc_fail("snl_init() failed");
 
@@ -102,6 +94,7 @@ ATF_TC(snl_parse_errmsg_capped_extack);
 ATF_TC_HEAD(snl_parse_errmsg_capped_extack, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Tests snl(3) correctly parsing capped errors with extack");
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
 }
 
 ATF_TC_BODY(snl_parse_errmsg_capped_extack, tc)
@@ -109,8 +102,6 @@ ATF_TC_BODY(snl_parse_errmsg_capped_extack, tc)
 	struct snl_state ss;
 	struct snl_writer nw;
 
-	require_netlink();
-
 	if (!snl_init(&ss, NETLINK_ROUTE))
 		atf_tc_fail("snl_init() failed");
 
@@ -145,6 +136,7 @@ ATF_TC(snl_parse_errmsg_uncapped_extack);
 ATF_TC_HEAD(snl_parse_errmsg_uncapped_extack, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Tests snl(3) correctly parsing errors with extack");
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
 }
 
 ATF_TC_BODY(snl_parse_errmsg_uncapped_extack, tc)
@@ -152,8 +144,6 @@ ATF_TC_BODY(snl_parse_errmsg_uncapped_extack, tc)
 	struct snl_state ss;
 	struct snl_writer nw;
 
-	require_netlink();
-
 	ATF_CHECK(snl_init(&ss, NETLINK_ROUTE));
 
 	int optval = 1;
@@ -185,6 +175,7 @@ ATF_TC(snl_list_ifaces);
 ATF_TC_HEAD(snl_list_ifaces, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Tests snl(3) listing interfaces");
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
 }
 
 struct nl_parsed_link {
@@ -212,8 +203,6 @@ ATF_TC_BODY(snl_list_ifaces, tc)
 	struct snl_state ss;
 	struct snl_writer nw;
 
-	require_netlink();
-
 	if (!snl_init(&ss, NETLINK_ROUTE))
 		atf_tc_fail("snl_init() failed");
 
diff --git a/tests/sys/netlink/test_snl_generic.c b/tests/sys/netlink/test_snl_generic.c
index c63b1380f2ad..8613bf04a45c 100644
--- a/tests/sys/netlink/test_snl_generic.c
+++ b/tests/sys/netlink/test_snl_generic.c
@@ -15,13 +15,6 @@ static const struct snl_hdr_parser *snl_all_genl_parsers[] = {
 	&_genl_ctrl_getfam_parser, &_genl_ctrl_mc_parser,
 };
 
-static void
-require_netlink(void)
-{
-	if (modfind("netlink") == -1)
-		atf_tc_skip("netlink module not loaded");
-}
-
 ATF_TC(snl_verify_genl_parsers);
 ATF_TC_HEAD(snl_verify_genl_parsers, tc)
 {
@@ -38,14 +31,13 @@ ATF_TC(test_snl_get_genl_family_success);
 ATF_TC_HEAD(test_snl_get_genl_family_success, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Tests successfull resolution of the 'nlctrl' family");
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
 }
 
 ATF_TC_BODY(test_snl_get_genl_family_success, tc)
 {
 	struct snl_state ss;
 
-	require_netlink();
-
 	if (!snl_init(&ss, NETLINK_GENERIC))
 		atf_tc_fail("snl_init() failed");
 
@@ -56,14 +48,13 @@ ATF_TC(test_snl_get_genl_family_failure);
 ATF_TC_HEAD(test_snl_get_genl_family_failure, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Tests unsuccessfull resolution of 'no-such-family' family");
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
 }
 
 ATF_TC_BODY(test_snl_get_genl_family_failure, tc)
 {
 	struct snl_state ss;
 
-	require_netlink();
-
 	if (!snl_init(&ss, NETLINK_GENERIC))
 		atf_tc_fail("snl_init() failed");
 
@@ -74,6 +65,7 @@ ATF_TC(test_snl_get_genl_family_groups);
 ATF_TC_HEAD(test_snl_get_genl_family_groups, tc)
 {
 	atf_tc_set_md_var(tc, "descr", "Tests getting 'nlctrl' groups");
+	atf_tc_set_md_var(tc, "require.kmods", "netlink");
 }
 
 ATF_TC_BODY(test_snl_get_genl_family_groups, tc)
@@ -82,8 +74,6 @@ ATF_TC_BODY(test_snl_get_genl_family_groups, tc)
 	struct snl_writer nw;
 	struct nlmsghdr *hdr;
 
-	require_netlink();
-
 	if (!snl_init(&ss, NETLINK_GENERIC))
 		atf_tc_fail("snl_init() failed");
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202509051842.585IgP2G096471>