diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/README | 9 | ||||
| -rw-r--r-- | tests/test_echo_tcp_write_read.c | 12 | ||||
| -rw-r--r-- | tests/test_echo_udp_send_recv.c | 12 | ||||
| -rw-r--r-- | tests/test_echo_udp_sendto_recvfrom.c | 16 | ||||
| -rw-r--r-- | tests/torture.c | 30 | ||||
| -rw-r--r-- | tests/torture.h | 5 |
6 files changed, 59 insertions, 25 deletions
diff --git a/tests/README b/tests/README new file mode 100644 index 0000000..26bf1fb --- /dev/null +++ b/tests/README @@ -0,0 +1,9 @@ +In this directory you can find all socket_wrapper tests. All tests can also be +executed outside of the 'make test' environment and without socket_wrapper. + +This can be done with: + +TORTURE_SERVER_ADDRESS_IPV4="127.0.0.1" \ +TORTURE_SERVER_ADDRESS_IPV6="::1" \ +TORTURE_SERVER_PORT=7777 \ +./tests/test_echo_tcp_write_read diff --git a/tests/test_echo_tcp_write_read.c b/tests/test_echo_tcp_write_read.c index 389e400..e2ffe91 100644 --- a/tests/test_echo_tcp_write_read.c +++ b/tests/test_echo_tcp_write_read.c @@ -46,9 +46,11 @@ static void test_write_read_ipv4(void **state) ZERO_STRUCT(sin); sin.sin_family = AF_INET; - sin.sin_port = htons(TORTURE_ECHO_SRV_PORT); + sin.sin_port = htons(torture_server_port()); - rc = inet_pton(sin.sin_family, TORTURE_ECHO_SRV_IPV4, &sin.sin_addr); + rc = inet_pton(sin.sin_family, + torture_server_address(AF_INET), + &sin.sin_addr); assert_int_equal(rc, 1); rc = connect(s, (struct sockaddr *)&sin, slen); @@ -93,9 +95,11 @@ static void test_write_read_ipv6(void **state) ZERO_STRUCT(sin6); sin6.sin6_family = AF_INET6; - sin6.sin6_port = htons(TORTURE_ECHO_SRV_PORT); + sin6.sin6_port = htons(torture_server_port()); - rc = inet_pton(AF_INET6, TORTURE_ECHO_SRV_IPV6, &sin6.sin6_addr); + rc = inet_pton(AF_INET6, + torture_server_address(AF_INET6), + &sin6.sin6_addr); assert_int_equal(rc, 1); rc = connect(s, (struct sockaddr *)&sin6, slen); diff --git a/tests/test_echo_udp_send_recv.c b/tests/test_echo_udp_send_recv.c index c197251..4ea6812 100644 --- a/tests/test_echo_udp_send_recv.c +++ b/tests/test_echo_udp_send_recv.c @@ -46,9 +46,11 @@ static void test_send_recv_ipv4(void **state) ZERO_STRUCT(sin); sin.sin_family = AF_INET; - sin.sin_port = htons(TORTURE_ECHO_SRV_PORT); + sin.sin_port = htons(torture_server_port()); - rc = inet_pton(sin.sin_family, TORTURE_ECHO_SRV_IPV4, &sin.sin_addr); + rc = inet_pton(AF_INET, + torture_server_address(AF_INET), + &sin.sin_addr); assert_int_equal(rc, 1); rc = connect(s, (struct sockaddr *)&sin, slen); @@ -95,9 +97,11 @@ static void test_send_recv_ipv6(void **state) ZERO_STRUCT(sin6); sin6.sin6_family = AF_INET6; - sin6.sin6_port = htons(TORTURE_ECHO_SRV_PORT); + sin6.sin6_port = htons(torture_server_port()); - rc = inet_pton(AF_INET6, TORTURE_ECHO_SRV_IPV6, &sin6.sin6_addr); + rc = inet_pton(AF_INET6, + torture_server_address(AF_INET6), + &sin6.sin6_addr); assert_int_equal(rc, 1); rc = connect(s, (struct sockaddr *)&sin6, slen); diff --git a/tests/test_echo_udp_sendto_recvfrom.c b/tests/test_echo_udp_sendto_recvfrom.c index f68cef9..a7ed474 100644 --- a/tests/test_echo_udp_sendto_recvfrom.c +++ b/tests/test_echo_udp_sendto_recvfrom.c @@ -48,9 +48,11 @@ static void test_sendto_recvfrom_ipv4(void **state) ZERO_STRUCT(sin); sin.sin_family = AF_INET; - sin.sin_port = htons(TORTURE_ECHO_SRV_PORT); + sin.sin_port = htons(torture_server_port()); - rc = inet_pton(sin.sin_family, TORTURE_ECHO_SRV_IPV4, &sin.sin_addr); + rc = inet_pton(AF_INET, + torture_server_address(AF_INET), + &sin.sin_addr); assert_int_equal(rc, 1); for (i = 0; i < 10; i++) { @@ -79,7 +81,7 @@ static void test_sendto_recvfrom_ipv4(void **state) a = inet_ntop(AF_INET, &srv_in.sin_addr, ip, sizeof(ip)); assert_non_null(a); - assert_string_equal(a, TORTURE_ECHO_SRV_IPV4); + assert_string_equal(a, torture_server_address(AF_INET)); assert_memory_equal(send_buf, recv_buf, sizeof(send_buf)); } @@ -122,9 +124,11 @@ static void test_sendto_recvfrom_ipv6(void **state) ZERO_STRUCT(sin6); sin6.sin6_family = AF_INET6; - sin6.sin6_port = htons(TORTURE_ECHO_SRV_PORT); + sin6.sin6_port = htons(torture_server_port()); - rc = inet_pton(AF_INET6, TORTURE_ECHO_SRV_IPV6, &sin6.sin6_addr); + rc = inet_pton(AF_INET6, + torture_server_address(AF_INET6), + &sin6.sin6_addr); assert_int_equal(rc, 1); for (i = 0; i < 10; i++) { @@ -153,7 +157,7 @@ static void test_sendto_recvfrom_ipv6(void **state) a = inet_ntop(AF_INET6, &srv_in6.sin6_addr, ip, sizeof(ip)); assert_non_null(a); - assert_string_equal(a, TORTURE_ECHO_SRV_IPV6); + assert_string_equal(a, torture_server_address(AF_INET6)); assert_memory_equal(send_buf, recv_buf, sizeof(send_buf)); } diff --git a/tests/torture.c b/tests/torture.c index 3aeaa57..a441ec3 100644 --- a/tests/torture.c +++ b/tests/torture.c @@ -49,6 +49,11 @@ #include <unistd.h> #include <time.h> +#define TORTURE_ECHO_SRV_IPV4 "127.0.0.10" +/* socket wrapper IPv6 prefix fd00::5357:5fxx */ +#define TORTURE_ECHO_SRV_IPV6 "fd00::5357:5f0a" +#define TORTURE_ECHO_SRV_PORT 7 + #define TORTURE_SOCKET_DIR "/tmp/test_socket_wrapper_XXXXXX" #define TORTURE_ECHO_SRV_PIDFILE "echo_srv.pid" @@ -125,6 +130,7 @@ void torture_setup_socket_dir(void **state) static void torture_setup_echo_srv_ip(void **state, const char *ip, + int port, int type) { struct torture_state *s; @@ -152,8 +158,8 @@ static void torture_setup_echo_srv_ip(void **state, setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "10", 1); snprintf(start_echo_srv, sizeof(start_echo_srv), - "%s/tests/echo_srv -b %s -D %s --pid %s", - BINARYDIR, ip, t, s->srv_pidfile); + "%s/tests/echo_srv -b %s -p %d -D %s --pid %s", + BINARYDIR, ip, port, t, s->srv_pidfile); rc = system(start_echo_srv); assert_int_equal(rc, 0); @@ -166,22 +172,34 @@ static void torture_setup_echo_srv_ip(void **state, void torture_setup_echo_srv_udp_ipv4(void **state) { - torture_setup_echo_srv_ip(state, "0.0.0.0", SOCK_DGRAM); + torture_setup_echo_srv_ip(state, + "0.0.0.0", + torture_server_port(), + SOCK_DGRAM); } void torture_setup_echo_srv_udp_ipv6(void **state) { - torture_setup_echo_srv_ip(state, "::", SOCK_DGRAM); + torture_setup_echo_srv_ip(state, + "::", + torture_server_port(), + SOCK_DGRAM); } void torture_setup_echo_srv_tcp_ipv4(void **state) { - torture_setup_echo_srv_ip(state, "0.0.0.0", SOCK_STREAM); + torture_setup_echo_srv_ip(state, + "0.0.0.0", + torture_server_port(), + SOCK_STREAM); } void torture_setup_echo_srv_tcp_ipv6(void **state) { - torture_setup_echo_srv_ip(state, "::", SOCK_STREAM); + torture_setup_echo_srv_ip(state, + "::", + torture_server_port(), + SOCK_STREAM); } void torture_teardown_socket_dir(void **state) diff --git a/tests/torture.h b/tests/torture.h index 62382d6..241b4a7 100644 --- a/tests/torture.h +++ b/tests/torture.h @@ -44,11 +44,6 @@ #include <stdint.h> #include <string.h> -#define TORTURE_ECHO_SRV_IPV4 "127.0.0.10" -/* socket wrapper IPv6 prefix fd00::5357:5fxx */ -#define TORTURE_ECHO_SRV_IPV6 "fd00::5357:5f0a" -#define TORTURE_ECHO_SRV_PORT 7 - struct torture_state { char *socket_dir; char *srv_pidfile; |
