[SCM] Socket Wrapper Repository - branch master updated

Andreas Schneider asn at samba.org
Fri Dec 20 09:30:51 MST 2013


The branch, master has been updated
       via  789118a tests: Add an ifdef around static IPv6 only functions
       via  b11ceab tests: Add test_echo_tcp_write_readv
      from  7d0e5ef tests: Use torture_server_(address|port).

http://gitweb.samba.org/?p=socket_wrapper.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 789118aee6683b8bfafac4ea24c6c9a160ad9e59
Author: Jakub Hrozek <jhrozek at redhat.com>
Date:   Fri Dec 20 16:53:59 2013 +0100

    tests: Add an ifdef around static IPv6 only functions
    
    This would prevent an uninitialized function warning in case IPv6 was not
    available.

commit b11ceabbfc505ab08f101d4a5ca6b498c30c98d1
Author: Jakub Hrozek <jhrozek at redhat.com>
Date:   Fri Dec 20 16:50:42 2013 +0100

    tests: Add test_echo_tcp_write_readv

-----------------------------------------------------------------------

Summary of changes:
 tests/CMakeLists.txt                               |    2 +-
 tests/test_echo_tcp_write_read.c                   |    2 +
 ...p_write_read.c => test_echo_tcp_writev_readv.c} |   88 +++++++++++++------
 tests/test_echo_udp_send_recv.c                    |    2 +
 tests/test_echo_udp_sendto_recvfrom.c              |    2 +
 5 files changed, 67 insertions(+), 29 deletions(-)
 copy tests/{test_echo_tcp_write_read.c => test_echo_tcp_writev_readv.c} (50%)


Changeset truncated at 500 lines:

diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 63b0046..23f362d 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -17,7 +17,7 @@ target_link_libraries(${TORTURE_LIBRARY}
     ${CMOCKA_LIBRARY}
     ${SWRAP_REQUIRED_LIBRARIES})
 
-set(SWRAP_TESTS test_ioctl test_echo_udp_sendto_recvfrom test_echo_udp_send_recv test_echo_tcp_write_read)
+set(SWRAP_TESTS test_ioctl test_echo_udp_sendto_recvfrom test_echo_udp_send_recv test_echo_tcp_write_read test_echo_tcp_writev_readv)
 
 foreach(_SWRAP_TEST ${SWRAP_TESTS})
     add_cmocka_test(${_SWRAP_TEST} ${_SWRAP_TEST}.c ${TORTURE_LIBRARY})
diff --git a/tests/test_echo_tcp_write_read.c b/tests/test_echo_tcp_write_read.c
index e2ffe91..4437de9 100644
--- a/tests/test_echo_tcp_write_read.c
+++ b/tests/test_echo_tcp_write_read.c
@@ -20,10 +20,12 @@ static void setup_echo_srv_tcp_ipv4(void **state)
 	torture_setup_echo_srv_tcp_ipv4(state);
 }
 
+#ifdef HAVE_IPV6
 static void setup_echo_srv_tcp_ipv6(void **state)
 {
 	torture_setup_echo_srv_tcp_ipv6(state);
 }
+#endif
 
 static void teardown(void **state)
 {
diff --git a/tests/test_echo_tcp_write_read.c b/tests/test_echo_tcp_writev_readv.c
similarity index 50%
copy from tests/test_echo_tcp_write_read.c
copy to tests/test_echo_tcp_writev_readv.c
index e2ffe91..0b6fe1f 100644
--- a/tests/test_echo_tcp_write_read.c
+++ b/tests/test_echo_tcp_writev_readv.c
@@ -20,17 +20,19 @@ static void setup_echo_srv_tcp_ipv4(void **state)
 	torture_setup_echo_srv_tcp_ipv4(state);
 }
 
+#ifdef HAVE_IPV6
 static void setup_echo_srv_tcp_ipv6(void **state)
 {
 	torture_setup_echo_srv_tcp_ipv6(state);
 }
+#endif
 
 static void teardown(void **state)
 {
 	torture_teardown_echo_srv(state);
 }
 
-static void test_write_read_ipv4(void **state)
+static void test_writev_readv_ipv4(void **state)
 {
 	struct sockaddr_in sin;
 	socklen_t slen = sizeof(struct sockaddr_in);
@@ -49,37 +51,52 @@ static void test_write_read_ipv4(void **state)
 	sin.sin_port = htons(torture_server_port());
 
 	rc = inet_pton(sin.sin_family,
-		       torture_server_address(AF_INET),
-		       &sin.sin_addr);
+			torture_server_address(AF_INET),
+			&sin.sin_addr);
 	assert_int_equal(rc, 1);
 
 	rc = connect(s, (struct sockaddr *)&sin, slen);
 	assert_int_equal(rc, 0);
 
 	for (i = 0; i < 10; i++) {
-		char send_buf[64] = {0};
-		char recv_buf[64] = {0};
+		char send_buf[10][64];
+		char recv_buf[10][64];
+		struct iovec iov_send[10];
+		struct iovec iov_recv[10];
+		int j;
+
+		for (j = 0; j < i; j++) {
+			memset(send_buf[j], 0, 64);
+			snprintf(send_buf[j], sizeof(send_buf), "packet.%d", j);
+
+			iov_send[j].iov_base = send_buf[j];
+			iov_send[j].iov_len = strlen(send_buf[j]);
 
-		snprintf(send_buf, sizeof(send_buf), "packet.%d", i);
+			iov_recv[j].iov_base = recv_buf[j];
+			iov_recv[j].iov_len = strlen(send_buf[j]);
+		}
 
-		ret = write(s,
-			    send_buf,
-			    sizeof(send_buf));
+		ret = writev(s, iov_send, j);
 		assert_int_not_equal(ret, -1);
 
-		ret = read(s,
-			   recv_buf,
-			   sizeof(recv_buf));
+		ret = readv(s, iov_recv, j);
 		assert_int_not_equal(ret, -1);
 
-		assert_memory_equal(send_buf, recv_buf, sizeof(send_buf));
+		for (j = 0; j < i; j++) {
+			assert_int_equal(iov_send[j].iov_len,
+					 iov_recv[j].iov_len);
+
+			assert_memory_equal(iov_send[j].iov_base,
+					    iov_recv[j].iov_base,
+					    iov_send[j].iov_len);
+		}
 	}
 
 	close(s);
 }
 
 #ifdef HAVE_IPV6
-static void test_write_read_ipv6(void **state)
+static void test_writev_readv_ipv6(void **state)
 {
 	struct sockaddr_in6 sin6;
 	socklen_t slen = sizeof(struct sockaddr_in6);
@@ -98,30 +115,45 @@ static void test_write_read_ipv6(void **state)
 	sin6.sin6_port = htons(torture_server_port());
 
 	rc = inet_pton(AF_INET6,
-		       torture_server_address(AF_INET6),
-		       &sin6.sin6_addr);
+			torture_server_address(AF_INET6),
+			&sin6.sin6_addr);
 	assert_int_equal(rc, 1);
 
 	rc = connect(s, (struct sockaddr *)&sin6, slen);
 	assert_int_equal(rc, 0);
 
 	for (i = 0; i < 10; i++) {
-		char send_buf[64] = {0};
-		char recv_buf[64] = {0};
+		char send_buf[10][64];
+		char recv_buf[10][64];
+		struct iovec iov_send[10];
+		struct iovec iov_recv[10];
+		int j;
+
+		for (j = 0; j < i; j++) {
+			memset(send_buf[j], 0, 64);
+			snprintf(send_buf[j], sizeof(send_buf), "packet.%d", j);
 
-		snprintf(send_buf, sizeof(send_buf), "packet.%d", i);
+			iov_send[j].iov_base = send_buf[j];
+			iov_send[j].iov_len = strlen(send_buf[j]);
 
-		ret = write(s,
-			    send_buf,
-			    sizeof(send_buf));
+			iov_recv[j].iov_base = recv_buf[j];
+			iov_recv[j].iov_len = strlen(send_buf[j]);
+		}
+
+		ret = writev(s, iov_send, j);
 		assert_int_not_equal(ret, -1);
 
-		ret = read(s,
-			   recv_buf,
-			   sizeof(recv_buf));
+		ret = readv(s, iov_recv, j);
 		assert_int_not_equal(ret, -1);
 
-		assert_memory_equal(send_buf, recv_buf, sizeof(send_buf));
+		for (j = 0; j < i; j++) {
+			assert_int_equal(iov_send[j].iov_len,
+					 iov_recv[j].iov_len);
+
+			assert_memory_equal(iov_send[j].iov_base,
+					    iov_recv[j].iov_base,
+					    iov_send[j].iov_len);
+		}
 	}
 
 	close(s);
@@ -132,9 +164,9 @@ int main(void) {
 	int rc;
 
 	const UnitTest tests[] = {
-		unit_test_setup_teardown(test_write_read_ipv4, setup_echo_srv_tcp_ipv4, teardown),
+		unit_test_setup_teardown(test_writev_readv_ipv4, setup_echo_srv_tcp_ipv4, teardown),
 #ifdef HAVE_IPV6
-		unit_test_setup_teardown(test_write_read_ipv6, setup_echo_srv_tcp_ipv6, teardown),
+		unit_test_setup_teardown(test_writev_readv_ipv6, setup_echo_srv_tcp_ipv6, teardown),
 #endif
 	};
 
diff --git a/tests/test_echo_udp_send_recv.c b/tests/test_echo_udp_send_recv.c
index 4ea6812..9dd208b 100644
--- a/tests/test_echo_udp_send_recv.c
+++ b/tests/test_echo_udp_send_recv.c
@@ -20,10 +20,12 @@ static void setup_echo_srv_udp_ipv4(void **state)
 	torture_setup_echo_srv_udp_ipv4(state);
 }
 
+#ifdef HAVE_IPV6
 static void setup_echo_srv_udp_ipv6(void **state)
 {
 	torture_setup_echo_srv_udp_ipv6(state);
 }
+#endif
 
 static void teardown(void **state)
 {
diff --git a/tests/test_echo_udp_sendto_recvfrom.c b/tests/test_echo_udp_sendto_recvfrom.c
index a7ed474..b0ed24a 100644
--- a/tests/test_echo_udp_sendto_recvfrom.c
+++ b/tests/test_echo_udp_sendto_recvfrom.c
@@ -20,10 +20,12 @@ static void setup_echo_srv_udp_ipv4(void **state)
 	torture_setup_echo_srv_udp_ipv4(state);
 }
 
+#ifdef HAVE_IPV6
 static void setup_echo_srv_udp_ipv6(void **state)
 {
 	torture_setup_echo_srv_udp_ipv6(state);
 }
+#endif
 
 static void teardown(void **state)
 {


-- 
Socket Wrapper Repository


More information about the samba-cvs mailing list