aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Rogers <mrogers@redhat.com>2016-08-25 12:59:31 -0400
committerMichael Adam <obnox@samba.org>2016-09-01 15:55:06 +0200
commitd749ca20c5fced2b1279154ef8a4ca5c5e599dd2 (patch)
treea7bc7306127d917b2d6137590c18b6340c901680
parentcc7e8b01f88d68c30c84ea9045f8a123f6f30720 (diff)
downloadresolv_wrapper-d749ca20c5fced2b1279154ef8a4ca5c5e599dd2.tar.gz
resolv_wrapper-d749ca20c5fced2b1279154ef8a4ca5c5e599dd2.tar.xz
resolv_wrapper-d749ca20c5fced2b1279154ef8a4ca5c5e599dd2.zip
Test a URI query with multiple answers
Signed-off-by: Matt Rogers <mrogers@redhat.com Reviewed-by: Andreas Schneider <asn@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
-rw-r--r--tests/fake_hosts.in2
-rw-r--r--tests/test_dns_fake.c33
2 files changed, 29 insertions, 6 deletions
diff --git a/tests/fake_hosts.in b/tests/fake_hosts.in
index 1812979..824af57 100644
--- a/tests/fake_hosts.in
+++ b/tests/fake_hosts.in
@@ -13,5 +13,7 @@ A krb5.cwrap.org 127.0.0.23
A ns1.cwrap.org 127.0.0.24
A ns2.cwrap.org 127.0.0.25
URI _vpn.cwrap.org https://vpn.cwrap.org/VPN 2 5
+URI _vpn.cwrap.org https://vpn2.cwrap.org/VPN 2 10
+URI _vpn.cwrap.org https://vpn3.cwrap.org/VPN 2 20
URI _ftp.cwrap.org ftp://ftp.cwrap.org/public
PTR 22.0.0.127.in-addr.arpa www.cwrap.org
diff --git a/tests/test_dns_fake.c b/tests/test_dns_fake.c
index 348135c..28ee57a 100644
--- a/tests/test_dns_fake.c
+++ b/tests/test_dns_fake.c
@@ -371,20 +371,20 @@ static void test_res_fake_uri_query(void **state)
rv = res_nquery(&dnsstate, "_vpn.cwrap.org", ns_c_in, ns_t_uri,
answer, sizeof(answer));
- assert_in_range(rv, 1, 100);
+ assert_in_range(rv, 1, ANSIZE);
ns_initparse(answer, sizeof(answer), &handle);
/*
- * The query must finish w/o an error, have one answer and the answer
- * must be a parseable RR of type URI and have the priority, weight, and
- * URI string as in the hosts file.
+ * The query must finish w/o an error, have three answers and they must be
+ * a parseable RR of type URI and have the priority, weight, and URI string
+ * as in the hosts file.
*/
assert_int_equal(ns_msg_getflag(handle, ns_f_rcode), ns_r_noerror);
- assert_int_equal(ns_msg_count(handle, ns_s_an), 1);
+ assert_int_equal(ns_msg_count(handle, ns_s_an), 3);
+
assert_int_equal(ns_parserr(&handle, ns_s_an, 0, &rr), 0);
assert_int_equal(ns_rr_type(rr), ns_t_uri);
-
rrdata = ns_rr_rdata(rr);
NS_GET16(prio, rrdata);
NS_GET16(weight, rrdata);
@@ -392,6 +392,27 @@ static void test_res_fake_uri_query(void **state)
assert_int_equal(prio, 2);
assert_int_equal(weight, 5);
assert_string_equal(rrdata, "https://vpn.cwrap.org/VPN");
+
+ assert_int_equal(ns_parserr(&handle, ns_s_an, 1, &rr), 0);
+ assert_int_equal(ns_rr_type(rr), ns_t_uri);
+ rrdata = ns_rr_rdata(rr);
+ NS_GET16(prio, rrdata);
+ NS_GET16(weight, rrdata);
+
+ assert_int_equal(prio, 2);
+ assert_int_equal(weight, 10);
+ assert_string_equal(rrdata, "https://vpn2.cwrap.org/VPN");
+
+ assert_int_equal(ns_parserr(&handle, ns_s_an, 2, &rr), 0);
+ assert_int_equal(ns_rr_type(rr), ns_t_uri);
+ rrdata = ns_rr_rdata(rr);
+ NS_GET16(prio, rrdata);
+ NS_GET16(weight, rrdata);
+
+ assert_int_equal(prio, 2);
+ assert_int_equal(weight, 20);
+ assert_string_equal(rrdata, "https://vpn3.cwrap.org/VPN");
+
}
/*