0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-27 15:41:05 +08:00

Problem: test_monitor is not run for ipv6

Solution: add test case using ipv6
This commit is contained in:
Simon Giesecke 2019-02-02 19:00:33 +01:00
parent f22b0b7483
commit 0e2e303b10
2 changed files with 28 additions and 6 deletions

View File

@ -117,7 +117,8 @@ void test_monitor_basic ()
}
#ifdef ZMQ_BUILD_DRAFT_API
void test_monitor_versioned_basic ()
void test_monitor_versioned_basic (bind_function_t bind_function_,
const char *expected_prefix_)
{
char server_endpoint[MAX_SOCKET_STRING];
@ -142,7 +143,7 @@ void test_monitor_versioned_basic ()
zmq_connect (server_mon, "inproc://monitor-server"));
// Now do a basic ping test
bind_loopback_ipv4 (server, server_endpoint, sizeof server_endpoint);
bind_function_ (server, server_endpoint, sizeof server_endpoint);
TEST_ASSERT_SUCCESS_ERRNO (zmq_connect (client, server_endpoint));
bounce (server, client);
@ -166,9 +167,8 @@ void test_monitor_versioned_basic ()
}
TEST_ASSERT_EQUAL (ZMQ_EVENT_CONNECTED, event);
TEST_ASSERT_EQUAL_STRING (server_endpoint, client_remote_address);
static const char prefix[] = "tcp://127.0.0.1:";
TEST_ASSERT_EQUAL_STRING_LEN (prefix, client_local_address,
strlen (prefix));
TEST_ASSERT_EQUAL_STRING_LEN (expected_prefix_, client_local_address,
strlen (expected_prefix_));
TEST_ASSERT_NOT_EQUAL (
0, strcmp (client_local_address, client_remote_address));
@ -200,6 +200,18 @@ void test_monitor_versioned_basic ()
test_context_socket_close_zero_linger (client_mon);
test_context_socket_close_zero_linger (server_mon);
}
void test_monitor_versioned_basic_tcp_ipv4 ()
{
static const char prefix[] = "tcp://127.0.0.1:";
test_monitor_versioned_basic (bind_loopback_ipv4, prefix);
}
void test_monitor_versioned_basic_tcp_ipv6 ()
{
static const char prefix[] = "tcp://[::1]:";
test_monitor_versioned_basic (bind_loopback_ipv6, prefix);
}
#endif
int main ()
@ -211,7 +223,8 @@ int main ()
RUN_TEST (test_monitor_basic);
#ifdef ZMQ_BUILD_DRAFT_API
RUN_TEST (test_monitor_versioned_basic);
RUN_TEST (test_monitor_versioned_basic_tcp_ipv4);
RUN_TEST (test_monitor_versioned_basic_tcp_ipv6);
#endif
return UNITY_END ();

View File

@ -313,7 +313,16 @@ void bind_loopback (void *socket_, int ipv6_, char *my_endpoint_, size_t len_)
my_endpoint_, len_);
}
typedef void (*bind_function_t) (void *socket_,
char *my_endpoint_,
size_t len_);
void bind_loopback_ipv4 (void *socket_, char *my_endpoint_, size_t len_)
{
bind_loopback (socket_, false, my_endpoint_, len_);
}
void bind_loopback_ipv6 (void *socket_, char *my_endpoint_, size_t len_)
{
bind_loopback (socket_, true, my_endpoint_, len_);
}