diff options
author | Martin Schwenke <martin@meltin.net> | 2019-03-14 16:32:02 +1100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2019-03-26 07:49:19 +0000 |
commit | 96a229b02812e3a989eb9b96f888e087d9e0969a (patch) | |
tree | d2e50601ef5e851f77308d9e19d1bb7df78963ab | |
parent | 02da215c10422d28fbe8646f5dca07448c12d7e1 (diff) | |
download | samba-96a229b02812e3a989eb9b96f888e087d9e0969a.tar.gz |
ctdb-tests: Add some testing for IPv4-mapped IPv6 address parsing
ctdb_sock_addr values are hashed in some contexts. This means that
all of the memory used for the ctdb_sock_addr should be consistent
regardless of how parsing is done. The first 2 cases are just sanity
checks but the 3rd case involving an IPv4-mapped IPv6 address is the
real target of this test addition.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13839
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@samba.org>
(cherry picked from commit d9286701cd9253bf3b42cac3d850ae8c23743e6d)
-rw-r--r-- | ctdb/tests/src/protocol_util_test.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/ctdb/tests/src/protocol_util_test.c b/ctdb/tests/src/protocol_util_test.c index 5608b13920c..9be95eca2ef 100644 --- a/ctdb/tests/src/protocol_util_test.c +++ b/ctdb/tests/src/protocol_util_test.c @@ -52,6 +52,20 @@ static void test_sock_addr_from_string_bad(const char *ip, bool with_port) assert(ret == EINVAL); } +static void test_sock_addr_from_string_memcmp(const char *ip1, + const char* ip2) +{ + ctdb_sock_addr sa1, sa2; + int ret; + + ret = ctdb_sock_addr_from_string(ip1, &sa1, false); + assert(ret == 0); + ret = ctdb_sock_addr_from_string(ip2, &sa2, false); + assert(ret == 0); + ret = memcmp(&sa1, &sa2, sizeof(ctdb_sock_addr)); + assert(ret == 0); +} + static void test_sock_addr_cmp(const char *ip1, const char *ip2, bool with_port, int res) { @@ -299,6 +313,11 @@ int main(int argc, char *argv[]) test_sock_addr_from_string_bad("junk", false); test_sock_addr_from_string_bad("0.0.0.0:0 trailing junk", true); + test_sock_addr_from_string_memcmp("127.0.0.1", "127.0.0.1"); + test_sock_addr_from_string_memcmp("fe80::6af7:28ff:fefa:d136", + "fe80::6af7:28ff:fefa:d136"); + test_sock_addr_from_string_memcmp("::ffff:192.0.2.128", "192.0.2.128"); + test_sock_addr_cmp("127.0.0.1", "127.0.0.1" , false, 0); test_sock_addr_cmp("127.0.0.1", "127.0.0.2" , false, -1); test_sock_addr_cmp("127.0.0.2", "127.0.0.1" , false, 1); |