Просмотр исходного кода

socket unit tests: improve basic tests a bit

goldsimon 8 лет назад
Родитель
Сommit
2b309bd1ae
1 измененных файлов с 37 добавлено и 1 удалено
  1. 37 1
      test/unit/api/test_sockets.c

+ 37 - 1
test/unit/api/test_sockets.c

@@ -109,6 +109,7 @@ static void test_sockets_allfunctions_basic_domain(int domain)
   int s, s2, s3, ret;
   struct sockaddr_storage addr, addr2;
   socklen_t addrlen, addr2len;
+  char buf[4];
   /* listen socket */
   s = lwip_socket(domain, SOCK_STREAM, 0);
   fail_unless(s >= 0);
@@ -151,10 +152,45 @@ static void test_sockets_allfunctions_basic_domain(int domain)
   fail_unless(ret == -1);
   fail_unless(errno == EISCONN);
 
-  ret = lwip_close(s);
+  /* write from server to client */
+  ret = write(s3, "test", 4);
+  fail_unless(ret == 4);
+
+  ret = lwip_shutdown(s3, SHUT_WR);
+  fail_unless(ret == 0);
+
+  while(tcpip_thread_poll_one());
+
+  ret = lwip_read(s2, buf, 4);
+  fail_unless(ret == 4);
+
+  ret = lwip_read(s2, buf, 1);
   fail_unless(ret == 0);
+
+  ret = lwip_read(s2, buf, 1);
+  fail_unless(ret == -1);
+
+  ret = lwip_write(s2, "foo", 3);
+  fail_unless(ret == 3);
+
   ret = lwip_close(s2);
   fail_unless(ret == 0);
+
+  while(tcpip_thread_poll_one());
+
+  ret = lwip_read(s3, buf, 3);
+  fail_unless(ret == 3);
+
+  ret = lwip_read(s3, buf, 1);
+  fail_unless(ret == 0);
+
+  ret = lwip_read(s3, buf, 1);
+  fail_unless(ret == -1);
+
+  while(tcpip_thread_poll_one());
+
+  ret = lwip_close(s);
+  fail_unless(ret == 0);
   ret = lwip_close(s3);
   fail_unless(ret == 0);
 }