diff options
author | Ole André Vadla Ravnås <oleavr@gmail.com> | 2021-05-16 00:07:49 +0200 |
---|---|---|
committer | Olivier Crête <olivier.crete@ocrete.ca> | 2021-11-22 21:53:08 +0000 |
commit | 1d67c965c8aa4e2e7b507447a49f51dbdc04adad (patch) | |
tree | ab5ff11e47f5539ac1e4eaa29015256343a8b3a2 | |
parent | f56f25ab80c31b99c63707b6ad79140d183e5a4e (diff) | |
download | libnice-1d67c965c8aa4e2e7b507447a49f51dbdc04adad.tar.gz |
test-io-stream-closing-read: Handle partial I/O
-rw-r--r-- | tests/test-io-stream-closing-read.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/tests/test-io-stream-closing-read.c b/tests/test-io-stream-closing-read.c index 3990327..d43dfbd 100644 --- a/tests/test-io-stream-closing-read.c +++ b/tests/test-io-stream-closing-read.c @@ -54,10 +54,9 @@ GCond count_cond; static void read_thread_cb (GInputStream *input_stream, TestIOStreamThreadData *data) { - GError *error = NULL; - gssize len; + gboolean success; guint8 buf[MESSAGE_SIZE]; - + GError *error = NULL; g_mutex_lock (&count_lock); count++; @@ -66,13 +65,14 @@ read_thread_cb (GInputStream *input_stream, TestIOStreamThreadData *data) /* Block on receiving some data. */ do { - len = g_input_stream_read (input_stream, buf, sizeof (buf), NULL, &error); + gsize bytes_read = 0; + success = g_input_stream_read_all (input_stream, buf, sizeof (buf), + &bytes_read, NULL, &error); if (!data->user_data) { - g_assert_cmpint (len, ==, sizeof(buf)); + g_assert_cmpint (bytes_read, ==, sizeof (buf)); return; } - } while (len > 0); - g_assert_cmpint (len, ==, -1); + } while (success); g_assert_error (error, G_IO_ERROR, G_IO_ERROR_BROKEN_PIPE); g_clear_error (&error); @@ -84,19 +84,18 @@ static void write_thread_cb (GOutputStream *output_stream, TestIOStreamThreadData *data) { gchar buf[MESSAGE_SIZE] = {0}; - gssize ret; - GError *error = NULL; + gsize bytes_written = 0; gpointer tmp; guint stream_id; - ret = g_output_stream_write (output_stream, buf, sizeof (buf), NULL, - &error); + g_output_stream_write_all (output_stream, buf, sizeof (buf), &bytes_written, + NULL, NULL); g_mutex_lock (&count_lock); count++; g_cond_broadcast (&count_cond); if (data->user_data) { - g_assert_cmpint (ret, ==, sizeof(buf)); + g_assert_cmpint (bytes_written, ==, sizeof (buf)); g_mutex_unlock (&count_lock); return; } |