X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fresolve%2Ftest-dns-domain.c;h=ebc8d98fcefc9635f2f6eaf137f9757c2bf74a68;hb=5fae368bda9419d9d378ea32077c8fd183dd4b81;hp=bd53402be89de3757825f449c5ab0b44c0896dfd;hpb=74b2466e14a1961bf3ac0e8a60cfaceec705bd59;p=elogind.git diff --git a/src/resolve/test-dns-domain.c b/src/resolve/test-dns-domain.c index bd53402be..ebc8d98fc 100644 --- a/src/resolve/test-dns-domain.c +++ b/src/resolve/test-dns-domain.c @@ -20,6 +20,7 @@ ***/ #include "log.h" +#include "macro.h" #include "resolved-dns-domain.h" static void test_dns_label_unescape_one(const char *what, const char *expect, size_t buffer_sz, int ret) { @@ -55,7 +56,7 @@ static void test_dns_label_escape_one(const char *what, size_t l, const char *ex int r; r = dns_label_escape(what, l, &t); - assert(r == ret); + assert_se(r == ret); if (r < 0) return; @@ -159,6 +160,24 @@ static void test_dns_name_single_label(void) { assert_se(dns_name_single_label("xx.yy") == false); } +static void test_dns_name_reverse_one(const char *address, const char *name) { + _cleanup_free_ char *p = NULL; + union in_addr_union a, b; + int familya, familyb; + + assert_se(in_addr_from_string_auto(address, &familya, &a) >= 0); + assert_se(dns_name_reverse(familya, &a, &p) >= 0); + assert_se(streq(p, name)); + assert_se(dns_name_address(p, &familyb, &b) > 0); + assert_se(familya == familyb); + assert_se(in_addr_equal(familya, &a, &b)); +} + +static void test_dns_name_reverse(void) { + test_dns_name_reverse_one("47.11.8.15", "15.8.11.47.in-addr.arpa"); + test_dns_name_reverse_one("fe80::47", "7.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa"); +} + int main(int argc, char *argv[]) { test_dns_label_unescape(); @@ -168,6 +187,7 @@ int main(int argc, char *argv[]) { test_dns_name_endswith(); test_dns_name_root(); test_dns_name_single_label(); + test_dns_name_reverse(); return 0; }