From: Remi Gacogne Date: Fri, 25 Mar 2022 14:04:14 +0000 (+0100) Subject: dnsdist: More SVC unit tests X-Git-Tag: dnsdist-1.8.0-rc1~289^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3e1581e0fec954356a19d8df68c39c0c037767b2;p=thirdparty%2Fpdns.git dnsdist: More SVC unit tests --- diff --git a/pdns/dnsdistdist/test-dnsdistsvc_cc.cc b/pdns/dnsdistdist/test-dnsdistsvc_cc.cc index c15d07a51c..cbb1e658b0 100644 --- a/pdns/dnsdistdist/test-dnsdistsvc_cc.cc +++ b/pdns/dnsdistdist/test-dnsdistsvc_cc.cc @@ -14,6 +14,13 @@ BOOST_AUTO_TEST_CASE(test_Basic) { DNSName target("powerdns.com."); + { + // invalid priority of 0 + parameters + std::vector payload; + const uint16_t priority = 0; + BOOST_CHECK(!generateSVCPayload(payload, priority, target, {SvcParam::SvcParamKey::port}, {"dot"}, false, 853, std::string(), {ComboAddress("192.0.2.1")}, {ComboAddress("2001:db8::1")}, {})); + } + { std::vector payload; const uint16_t priority = 1; @@ -93,4 +100,33 @@ BOOST_AUTO_TEST_CASE(test_Basic) } } +BOOST_AUTO_TEST_CASE(test_Parsing) +{ + svcParamsLua_t params; + params["mandatory"] = std::vector>({ + { 1, "port" }, + }); + params["alpn"] = std::vector>({ + { 1, "h2" }, + }); + params["noDefaultAlpn"] = static_cast(true); + params["port"] = static_cast(443); + params["ipv4hint"] = std::vector>({ + { 1, "192.0.2.1" }, + }); + params["ipv6hint"] = std::vector>({ + { 1, "2001:db8::1" }, + }); + params["ech"] = std::string("test"); + + auto parsed = parseSVCParameters(params); + BOOST_CHECK(parsed.mandatoryParams == std::set{ SvcParam::SvcParamKey::port }); + BOOST_CHECK(parsed.alpns == std::vector{ "h2" }); + BOOST_CHECK(parsed.ipv4hints == std::vector{ ComboAddress("192.0.2.1") }); + BOOST_CHECK(parsed.ipv6hints == std::vector{ ComboAddress("2001:db8::1") }); + BOOST_CHECK_EQUAL(parsed.ech, "test"); + BOOST_CHECK_EQUAL(*parsed.port, 443); + BOOST_CHECK_EQUAL(parsed.noDefaultAlpn, true); +} + BOOST_AUTO_TEST_SUITE_END()