The branch main has been updated by imp:

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

commit 215a0654186926b2e4497d83f3eb45b5eefcb23f
Author:     Siva Mahadevan <m...@svmhdvn.name>
AuthorDate: 2025-07-21 13:25:26 +0000
Commit:     Warner Losh <i...@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 <m...@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");
 

Reply via email to