[wing/wip/named-pipe-test-write] named-pipe: factor write_and_read method



commit 09ff8d624bb84e417f88f069abe083a3b867eb37
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Thu Sep 1 11:20:32 2016 +0200

    named-pipe: factor write_and_read method

 tests/named-pipe.c |   81 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 45 insertions(+), 36 deletions(-)
---
diff --git a/tests/named-pipe.c b/tests/named-pipe.c
index d8a82e4..6286526 100644
--- a/tests/named-pipe.c
+++ b/tests/named-pipe.c
@@ -452,52 +452,24 @@ on_some_text_written (GObject      *source,
 }
 
 static void
-test_read_write_basic (void)
+write_and_read (GIOStream *server_stream,
+                GIOStream *client_stream)
 {
-  WingNamedPipeListener *listener;
-  WingNamedPipeClient *client;
-  WingNamedPipeConnection *conn_server = NULL;
-  WingNamedPipeConnection *conn_client = NULL;
-  GInputStream *in;
-  GOutputStream *out;
   gint i;
-  GError *error = NULL;
-
-  listener = wing_named_pipe_listener_new ();
-
-  wing_named_pipe_listener_add_named_pipe (listener,
-                                           "\\\\.\\pipe\\gtest-named-pipe-name",
-                                           NULL,
-                                           &error);
-  g_assert_no_error (error);
-
-  wing_named_pipe_listener_accept_async (listener,
-                                         NULL,
-                                         accepted_read_write_cb,
-                                         &conn_server);
-
-  client = wing_named_pipe_client_new ();
-  wing_named_pipe_client_connect_async (client,
-                                        "\\\\.\\pipe\\gtest-named-pipe-name",
-                                        NULL,
-                                        connected_read_write_cb,
-                                        &conn_client);
-
-  do
-    g_main_context_iteration (NULL, TRUE);
-  while (conn_server == NULL || conn_client == NULL);
 
   for (i = 0; i < WRITE_ITERATIONS; i++)
     {
       ReadData *data;
+      GInputStream *in;
+      GOutputStream *out;
       gboolean server_wrote = FALSE;
       gboolean server_read = FALSE;
       gboolean client_wrote = FALSE;
       gboolean client_read = FALSE;
 
       /* Server */
-      out = g_io_stream_get_output_stream (G_IO_STREAM (conn_server));
-      in = g_io_stream_get_input_stream (G_IO_STREAM (conn_server));
+      out = g_io_stream_get_output_stream (server_stream);
+      in = g_io_stream_get_input_stream (server_stream);
 
       g_output_stream_write_async (out,
                                    some_text,
@@ -518,8 +490,8 @@ test_read_write_basic (void)
                                  data);
 
       /* Client */
-      out = g_io_stream_get_output_stream (G_IO_STREAM (conn_client));
-      in = g_io_stream_get_input_stream (G_IO_STREAM (conn_client));
+      out = g_io_stream_get_output_stream (client_stream);
+      in = g_io_stream_get_input_stream (client_stream);
 
       g_output_stream_write_async (out,
                                    some_text,
@@ -544,6 +516,43 @@ test_read_write_basic (void)
       while (!server_wrote || !client_wrote ||
              !server_read || !client_read);
     }
+}
+
+static void
+test_read_write_basic (void)
+{
+  WingNamedPipeListener *listener;
+  WingNamedPipeClient *client;
+  WingNamedPipeConnection *conn_server = NULL;
+  WingNamedPipeConnection *conn_client = NULL;
+  GError *error = NULL;
+
+  listener = wing_named_pipe_listener_new ();
+
+  wing_named_pipe_listener_add_named_pipe (listener,
+                                           "\\\\.\\pipe\\gtest-named-pipe-name",
+                                           NULL,
+                                           &error);
+  g_assert_no_error (error);
+
+  wing_named_pipe_listener_accept_async (listener,
+                                         NULL,
+                                         accepted_read_write_cb,
+                                         &conn_server);
+
+  client = wing_named_pipe_client_new ();
+  wing_named_pipe_client_connect_async (client,
+                                        "\\\\.\\pipe\\gtest-named-pipe-name",
+                                        NULL,
+                                        connected_read_write_cb,
+                                        &conn_client);
+
+  do
+    g_main_context_iteration (NULL, TRUE);
+  while (conn_server == NULL || conn_client == NULL);
+
+  write_and_read (G_IO_STREAM (conn_server),
+                  G_IO_STREAM (conn_client));
 
   g_object_unref (conn_client);
   g_object_unref (conn_server);


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