From: James Coglan Date: Thu, 20 Jun 2024 13:10:14 +0000 (+0100) Subject: resolved: tests for dns_query_make_auxiliary() X-Git-Tag: v257-rc1~833^2~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e5d246b488dcab865b25a28f6151bb0a7e33ccdc;p=thirdparty%2Fsystemd.git resolved: tests for dns_query_make_auxiliary() --- diff --git a/src/resolve/test-dns-query.c b/src/resolve/test-dns-query.c index 85a78929040..69275877f6e 100644 --- a/src/resolve/test-dns-query.c +++ b/src/resolve/test-dns-query.c @@ -166,4 +166,39 @@ TEST(dns_query_new_too_many_questions) { dns_query_free(queries[i]); } +/* ================================================================ + * dns_query_make_auxiliary() + * ================================================================ */ + +TEST(dns_query_make_auxiliary) { + Manager manager = {}; + _cleanup_(dns_question_unrefp) DnsQuestion *qn1 = NULL, *qn2 = NULL, *qn3 = NULL; + _cleanup_(dns_query_freep) DnsQuery *q1 = NULL, *q2 = NULL, *q3 = NULL; + + ASSERT_OK(dns_question_new_address(&qn1, AF_INET, "www.example.com", false)); + ASSERT_NOT_NULL(qn1); + ASSERT_OK(dns_query_new(&manager, &q1, qn1, NULL, NULL, 1, 0)); + ASSERT_NOT_NULL(q1); + + ASSERT_OK(dns_question_new_address(&qn2, AF_INET, "www.example.net", false)); + ASSERT_NOT_NULL(qn2); + ASSERT_OK(dns_query_new(&manager, &q2, qn2, NULL, NULL, 1, 0)); + ASSERT_NOT_NULL(q2); + + ASSERT_OK(dns_question_new_address(&qn3, AF_INET, "www.example.org", false)); + ASSERT_NOT_NULL(qn3); + ASSERT_OK(dns_query_new(&manager, &q3, qn3, NULL, NULL, 1, 0)); + ASSERT_NOT_NULL(q3); + + ASSERT_OK(dns_query_make_auxiliary(q2, q1)); + ASSERT_OK(dns_query_make_auxiliary(q3, q1)); + + ASSERT_EQ(q1->n_auxiliary_queries, 2u); + ASSERT_TRUE(q1->auxiliary_queries == q3); + ASSERT_TRUE(q1->auxiliary_queries->auxiliary_queries_next == q2); + + ASSERT_TRUE(q2->auxiliary_for == q1); + ASSERT_TRUE(q3->auxiliary_for == q1); +} + DEFINE_TEST_MAIN(LOG_DEBUG);