gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r19128 - gnunet/src/stream


From: gnunet
Subject: [GNUnet-SVN] r19128 - gnunet/src/stream
Date: Fri, 13 Jan 2012 22:33:48 +0100

Author: harsha
Date: 2012-01-13 22:33:47 +0100 (Fri, 13 Jan 2012)
New Revision: 19128

Modified:
   gnunet/src/stream/test_stream_local.c
Log:
added shutdown call in testcase

Modified: gnunet/src/stream/test_stream_local.c
===================================================================
--- gnunet/src/stream/test_stream_local.c       2012-01-13 21:33:17 UTC (rev 
19127)
+++ gnunet/src/stream/test_stream_local.c       2012-01-13 21:33:47 UTC (rev 
19128)
@@ -25,6 +25,7 @@
  */
 
 #include <string.h>
+#include <sys/socket.h>         /* For SHUT_RD, SHUT_WR */
 
 #include "platform.h"
 #include "gnunet_util_lib.h"
@@ -46,8 +47,8 @@
 static GNUNET_STREAM_IOHandle *peer2_IOHandle;
 
 static char *data = "ABCD";
-static unsigned int *data_pointer;
-static unsigned int *read_pointer;
+static unsigned int data_pointer;
+static unsigned int read_pointer;
 static int result
 
 static int test1_success_counter;
@@ -59,6 +60,8 @@
 static void
 do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
+  GNUNET_STREAM_close (peer1_socket);
+  GNUNET_STREAM_close (peer2_socket);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "test: shutdown\n");
   if (0 != abort_task)
   {
@@ -108,12 +111,22 @@
                        enum GNUNET_STREAM_Status status,
                        size_t size)
 {
+
+  if (3 == test1_success_counter) /* Called for peer2's write operation */
+    {
+      /* peer1 has shutdown reading */
+      GNUNET_assert (GNUNET_STREAM_SHUTDOWN == status);
+      GNUNET_assert (0 == size);
+      test1_success_counter ++;
+      
+      GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+    }
   GNUNET_assert (GNUNET_STREAM_OK == status);
   if (data_pointer + size != strlen(data)) /* Have more data to send */
     {
       data_pointer += size;
       peer1_IOHandle = GNUNET_STREAM_write (peer1_socket,
-                                            (void *) data_pointer,
+                                            (void *) data,
                                             strlen(data) - data_pointer,
                                             GNUNET_TIME_relative_multiply
                                             (GNUNET_TIME_UNIT_SECONDS, 5),
@@ -122,12 +135,8 @@
       GNUNET_assert (NULL != peer1_IOHandle);
     }
   else{                         /* Close peer1 socket */
-    GNUNET_STREAM_close (peer1_socket);
     test1_success_counter++;
-    if (2 == test1_success_counter)
-      {
-        GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
-      }
+    GNUNET_STREAM_shutdown (peer1_socket, SHUT_RDWR);
   }
 }
 
@@ -173,6 +182,25 @@
                  const void *input_data,
                  size_t size)
 {
+
+  if (2 == test1_success_counter)
+    {
+      GNUNET_assert (GNUNET_STREAM_SHUTDOWN == status);
+      GNUNET_assert (0 == size);
+      test1_success_counter ++;
+      /* Now this should result in STREAM_SHUTDOWN */
+      peer2_IOHandle = GNUNET_STREAM_write (peer2_socket,
+                                            (void *) data,
+                                            strlen(data),
+                                            GNUNET_TIME_relative_multiply
+                                            (GNUNET_TIME_UNIT_SECONDS, 5),
+                                            &write_completion,
+                                            (void *) peer2_socket);
+                                            
+      return 0;
+    }
+
+  GNUNET_assert (GNUNET_STERAM_OK == status);
   GNUNET_assert (size < strlen (data));
   GNUNET_assert (strncmp ((const char *) data, 
                           (const char *) input_data,
@@ -181,20 +209,23 @@
 
   if (read_pointer < strlen (data))
     {
-      peer2_IOHandle = GNUNET_STREAM_read ((struct GNUNET_STREAM_Socket) cls,
+      peer2_IOHandle = GNUNET_STREAM_read ((struct GNUNET_STREAM_Socket *) cls,
                                        GNUNET_TIME_relative_multiply
                                        (GNUNET_TIME_UNIT_SECONDS, 5),
                                        &input_processor,
                                        NULL);
       GNUNET_assert (NULL != peer2_IOHandle);
     }
-  else {                        /* Close peer2 socket */
-    GNUNET_STREAM_close (peer2_socket);
+  else {
     test1_success_counter ++;
-    if (2 == test1_success_counter)
-      {
-        GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
-      }
+    /* This time should the read status should be STERAM_SHUTDOWN */
+    peer2_IOHandle = GNUNET_STREAM_read ((struct GNUNET_STREAM_Socket *) cls,
+                                         GNUNET_TIME_relative_multiply
+                                         (GNUNET_TIME_UNIT_SECONDS, 5),
+                                         &input_processor,
+                                         NULL);
+
+
   }
         
   return size;
@@ -211,7 +242,7 @@
   GNUNET_assert (NULL != cls);
   read_pointer = 0;
   GNUNET_STREAM_listen_close (peer2_listen_socket); /* Close listen socket */
-  peer2_IOHandle = GNUNET_STREAM_read ((struct GNUNET_STREAM_Socket) cls,
+  peer2_IOHandle = GNUNET_STREAM_read ((struct GNUNET_STREAM_Socket *) cls,
                                        GNUNET_TIME_relative_multiply
                                        (GNUNET_TIME_UNIT_SECONDS, 5),
                                        &input_processor,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]