From: Martin Schwenke Date: Fri, 17 Aug 2018 06:02:50 +0000 (+1000) Subject: ctdb-tests: Extend TCP packet test to also do packet extraction X-Git-Tag: tdb-1.3.17~1961 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=43a2022596ed3bde1e2c833070b531a4b7289b84;p=thirdparty%2Fsamba.git ctdb-tests: Extend TCP packet test to also do packet extraction Signed-off-by: Martin Schwenke Reviewed-by: Amitay Isaacs --- diff --git a/ctdb/tests/src/system_socket_test.c b/ctdb/tests/src/system_socket_test.c index 285caa34cf4..6dd9e432ef7 100644 --- a/ctdb/tests/src/system_socket_test.c +++ b/ctdb/tests/src/system_socket_test.c @@ -104,6 +104,10 @@ static void test_tcp(const char *src_str, uint8_t buf[512]; struct ether_header *eth; size_t expected_len, len; + char src_str_out[64], dst_str_out[64]; + uint32_t seq_out, ack_out; + int rst_out; + uint16_t window; int ret; ret = ctdb_sock_addr_from_string(src_str, &src, true); @@ -153,6 +157,50 @@ static void test_tcp(const char *src_str, assert(len == expected_len); write(STDOUT_FILENO, buf + sizeof(struct ether_header), len); + + switch (ntohs(eth->ether_type)) { + case ETHERTYPE_IP: + ret = tcp4_extract(buf + sizeof(struct ether_header), + len, + &src.ip, + &dst.ip, + &ack_out, + &seq_out, + &rst_out, + &window); + break; + case ETHERTYPE_IP6: + ret = tcp6_extract(buf + sizeof(struct ether_header), + len, + &src.ip6, + &dst.ip6, + &ack_out, + &seq_out, + &rst_out, + &window); + break; + default: + abort(); + } + + assert(ret == 0); + + assert(seq == seq_out); + assert(ack == ack_out); + assert((rst != 0) == (rst_out != 0)); + assert(window == htons(1234)); + + ret = ctdb_sock_addr_to_buf(src_str_out, sizeof(src_str_out), + &src, true); + assert(ret == 0); + ret = strcmp(src_str, src_str_out); + assert(ret == 0); + + ret = ctdb_sock_addr_to_buf(dst_str_out, sizeof(dst_str_out), + &dst, true); + assert(ret == 0); + ret = strcmp(dst_str, dst_str_out); + assert(ret == 0); } static void usage(const char *prog) diff --git a/ctdb/wscript b/ctdb/wscript index 43baee6f68b..686a8381f4a 100644 --- a/ctdb/wscript +++ b/ctdb/wscript @@ -917,7 +917,7 @@ def build(bld): bld.SAMBA_BINARY('system_socket_test', source='tests/src/system_socket_test.c', - deps='talloc ctdb-protocol-util', + deps='talloc ctdb-protocol-util pcap', install_path='${CTDB_TEST_LIBEXECDIR}') bld.SAMBA_BINARY('porting_tests',