From: James Coglan Date: Tue, 25 Jun 2024 11:15:38 +0000 (+0100) Subject: resolved: tests for link_new(), link_process_rtnl() X-Git-Tag: v257-rc1~840^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=83ca174b731cd27fd384307452b1844e94aba506;p=thirdparty%2Fsystemd.git resolved: tests for link_new(), link_process_rtnl() --- diff --git a/src/resolve/meson.build b/src/resolve/meson.build index d336b2c07bf..cdb683d348b 100644 --- a/src/resolve/meson.build +++ b/src/resolve/meson.build @@ -182,6 +182,17 @@ executables += [ 'sources' : files('test-dnssec-complex.c'), 'type' : 'manual', }, + test_template + { + 'sources' : [ + files('test-resolved-link.c'), + basic_dns_sources, + systemd_resolved_sources, + ], + 'dependencies' : [ + systemd_resolved_dependencies, + ], + 'include_directories' : resolve_includes, + }, test_template + { 'sources' : [ files('test-resolved-stream.c'), diff --git a/src/resolve/test-resolved-link.c b/src/resolve/test-resolved-link.c new file mode 100644 index 00000000000..dc748410e96 --- /dev/null +++ b/src/resolve/test-resolved-link.c @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "netlink-internal.h" +#include "resolved-link.h" +#include "resolved-manager.h" + +#include "log.h" +#include "tests.h" + +/* ================================================================ + * link_new() + * ================================================================ */ + +TEST(link_new) { + Manager manager = {}; + _cleanup_(link_freep) Link *link = NULL; + + ASSERT_OK(link_new(&manager, &link, 1)); + ASSERT_NOT_NULL(link); +} + +/* ================================================================ + * link_process_rtnl() + * ================================================================ */ + +TEST(link_process_rtnl) { + Manager manager = {}; + _cleanup_(link_freep) Link *link = NULL; + _cleanup_(sd_netlink_unrefp) sd_netlink *nl = NULL; + _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *msg = NULL; + + ASSERT_OK(link_new(&manager, &link, 1)); + ASSERT_NOT_NULL(link); + + ASSERT_OK(netlink_open_family(&nl, AF_INET)); + nl->protocol = NETLINK_ROUTE; + + ASSERT_OK(sd_rtnl_message_new_link(nl, &msg, RTM_NEWLINK, 1)); + ASSERT_NOT_NULL(msg); + message_seal(msg); + + ASSERT_OK(link_process_rtnl(link, msg)); +} + +DEFINE_TEST_MAIN(LOG_DEBUG)