summaryrefslogtreecommitdiff
path: root/lib/tsocket
diff options
context:
space:
mode:
authorUri Simchoni <uri@samba.org>2021-09-16 20:03:02 +0300
committerAndrew Bartlett <abartlet@samba.org>2021-09-28 09:44:35 +0000
commit262148721ee6d794f7f2d1ad1b36e00a1401ec41 (patch)
tree2f9d848997a7bd33db55e1d786163e2dfd01b1f2 /lib/tsocket
parentc26fcef50d09d3d70c646f3151dda265d4b0eb92 (diff)
downloadsamba-262148721ee6d794f7f2d1ad1b36e00a1401ec41.tar.gz
selftest: add more tests for test_address_inet_from_strings
Test the case of NULL address as input Signed-off-by: Uri Simchoni <uri@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'lib/tsocket')
-rw-r--r--lib/tsocket/tests/test_bsd_addr.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/tsocket/tests/test_bsd_addr.c b/lib/tsocket/tests/test_bsd_addr.c
index 9f9fa29ec2d..baefb8ce236 100644
--- a/lib/tsocket/tests/test_bsd_addr.c
+++ b/lib/tsocket/tests/test_bsd_addr.c
@@ -163,6 +163,49 @@ static void test_address_inet_from_strings(void **state)
assert_int_equal(rc, -1);
assert_int_not_equal(save_errno, 0);
assert_null(addr);
+
+ /*
+ * Unspecified IP family, given NULL, verify it returns something
+ */
+ rc = tsocket_address_inet_from_strings(mem_ctx, "ip", NULL, 1234,
+ &addr);
+ assert_return_code(rc, errno);
+ assert_non_null(addr);
+ TALLOC_FREE(addr);
+
+ /*
+ * IPv4, given NULL, verify it returns 0.0.0.0
+ */
+ rc = tsocket_address_inet_from_strings(mem_ctx, "ipv4", NULL, 1234,
+ &addr);
+ assert_return_code(rc, errno);
+ assert_non_null(addr);
+ addr_s = tsocket_address_string(addr, mem_ctx);
+ assert_non_null(addr_s);
+ assert_string_equal(addr_s, "ipv4:0.0.0.0:1234");
+ assert_true(tsocket_address_is_inet(addr, "ip"));
+ assert_true(tsocket_address_is_inet(addr, "ipv4"));
+ assert_false(tsocket_address_is_inet(addr, "ipv6"));
+ assert_int_equal(tsocket_address_inet_port(addr), 1234);
+ TALLOC_FREE(addr);
+ TALLOC_FREE(addr_s);
+
+ /*
+ * IPv6, given NULL, verify it returns ::
+ */
+ rc = tsocket_address_inet_from_strings(mem_ctx, "ipv6", NULL, 1234,
+ &addr);
+ assert_return_code(rc, errno);
+ assert_non_null(addr);
+ addr_s = tsocket_address_string(addr, mem_ctx);
+ assert_non_null(addr_s);
+ assert_string_equal(addr_s, "ipv6::::1234");
+ assert_true(tsocket_address_is_inet(addr, "ip"));
+ assert_false(tsocket_address_is_inet(addr, "ipv4"));
+ assert_true(tsocket_address_is_inet(addr, "ipv6"));
+ assert_int_equal(tsocket_address_inet_port(addr), 1234);
+ TALLOC_FREE(addr);
+ TALLOC_FREE(addr_s);
}
int main(int argc, char *argv[])