diff options
Diffstat (limited to 'src/resolve/test-resolved-etc-hosts.c')
-rw-r--r-- | src/resolve/test-resolved-etc-hosts.c | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/src/resolve/test-resolved-etc-hosts.c b/src/resolve/test-resolved-etc-hosts.c index a0f712cbb6..19b2991a35 100644 --- a/src/resolve/test-resolved-etc-hosts.c +++ b/src/resolve/test-resolved-etc-hosts.c @@ -27,13 +27,11 @@ TEST(parse_etc_hosts_system) { assert_se(etc_hosts_parse(&hosts, f) == 0); } -#define address_equal_4(_addr, _address) \ - ((_addr)->family == AF_INET && \ - !memcmp(&(_addr)->address.in, &(struct in_addr) { .s_addr = (_address) }, 4)) +#define has_4(_set, _address_str) \ + set_contains(_set, &(struct in_addr_data) { .family = AF_INET, .address.in = { .s_addr = inet_addr(_address_str) } }) -#define address_equal_6(_addr, ...) \ - ((_addr)->family == AF_INET6 && \ - !memcmp(&(_addr)->address.in6, &(struct in6_addr) { .s6_addr = __VA_ARGS__}, 16) ) +#define has_6(_set, ...) \ + set_contains(_set, &(struct in_addr_data) { .family = AF_INET6, .address.in6 = { .s6_addr = __VA_ARGS__ } }) TEST(parse_etc_hosts) { _cleanup_(unlink_tempfilep) char @@ -72,33 +70,29 @@ TEST(parse_etc_hosts) { EtcHostsItemByName *bn; assert_se(bn = hashmap_get(hosts.by_name, "some.where")); - assert_se(bn->n_addresses == 3); - assert_se(MALLOC_ELEMENTSOF(bn->addresses) >= 3); - assert_se(address_equal_4(bn->addresses[0], inet_addr("1.2.3.4"))); - assert_se(address_equal_4(bn->addresses[1], inet_addr("1.2.3.5"))); - assert_se(address_equal_6(bn->addresses[2], {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5})); + assert_se(set_size(bn->addresses) == 3); + assert_se(has_4(bn->addresses, "1.2.3.4")); + assert_se(has_4(bn->addresses, "1.2.3.5")); + assert_se(has_6(bn->addresses, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5})); assert_se(bn = hashmap_get(hosts.by_name, "dash")); - assert_se(bn->n_addresses == 1); - assert_se(MALLOC_ELEMENTSOF(bn->addresses) >= 1); - assert_se(address_equal_4(bn->addresses[0], inet_addr("1.2.3.6"))); + assert_se(set_size(bn->addresses) == 1); + assert_se(has_4(bn->addresses, "1.2.3.6")); assert_se(bn = hashmap_get(hosts.by_name, "dash-dash.where-dash")); - assert_se(bn->n_addresses == 1); - assert_se(MALLOC_ELEMENTSOF(bn->addresses) >= 1); - assert_se(address_equal_4(bn->addresses[0], inet_addr("1.2.3.6"))); + assert_se(set_size(bn->addresses) == 1); + assert_se(has_4(bn->addresses, "1.2.3.6")); /* See https://tools.ietf.org/html/rfc1035#section-2.3.1 */ FOREACH_STRING(s, "bad-dash-", "-bad-dash", "-bad-dash.bad-") assert_se(!hashmap_get(hosts.by_name, s)); assert_se(bn = hashmap_get(hosts.by_name, "before.comment")); - assert_se(bn->n_addresses == 4); - assert_se(MALLOC_ELEMENTSOF(bn->addresses) >= 4); - assert_se(address_equal_4(bn->addresses[0], inet_addr("1.2.3.9"))); - assert_se(address_equal_4(bn->addresses[1], inet_addr("1.2.3.10"))); - assert_se(address_equal_4(bn->addresses[2], inet_addr("1.2.3.11"))); - assert_se(address_equal_4(bn->addresses[3], inet_addr("1.2.3.12"))); + assert_se(set_size(bn->addresses) == 4); + assert_se(has_4(bn->addresses, "1.2.3.9")); + assert_se(has_4(bn->addresses, "1.2.3.10")); + assert_se(has_4(bn->addresses, "1.2.3.11")); + assert_se(has_4(bn->addresses, "1.2.3.12")); assert_se(!hashmap_get(hosts.by_name, "within.comment")); assert_se(!hashmap_get(hosts.by_name, "within.comment2")); @@ -113,9 +107,8 @@ TEST(parse_etc_hosts) { assert_se(!set_contains(hosts.no_address, "multi.colon")); assert_se(bn = hashmap_get(hosts.by_name, "some.other")); - assert_se(bn->n_addresses == 1); - assert_se(MALLOC_ELEMENTSOF(bn->addresses) >= 1); - assert_se(address_equal_6(bn->addresses[0], {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5})); + assert_se(set_size(bn->addresses) == 1); + assert_se(has_6(bn->addresses, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5})); assert_se( set_contains(hosts.no_address, "some.where")); assert_se( set_contains(hosts.no_address, "some.other")); |