From: Uri Simchoni Date: Thu, 16 Sep 2021 17:03:02 +0000 (+0300) Subject: selftest: add more tests for test_address_inet_from_strings X-Git-Tag: ldb-2.5.0~541 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=262148721ee6d794f7f2d1ad1b36e00a1401ec41;p=thirdparty%2Fsamba.git selftest: add more tests for test_address_inet_from_strings Test the case of NULL address as input Signed-off-by: Uri Simchoni Reviewed-by: Andrew Bartlett --- 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[])