git: 215a06541869 - main - tests/sys/netlink: use require.kmods property instead of ad-hoc checks
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 05 Sep 2025 18:42:25 UTC
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");