summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOle André Vadla Ravnås <oleavr@gmail.com>2021-05-16 00:08:13 +0200
committerOlivier Crête <olivier.crete@ocrete.ca>2021-11-22 21:53:08 +0000
commite22aaa74ecf7d193450991dfc7c6657f6b092139 (patch)
treec0916c9118fa65d58cc6fc221ff13810490d4639
parent1d67c965c8aa4e2e7b507447a49f51dbdc04adad (diff)
downloadlibnice-e22aaa74ecf7d193450991dfc7c6657f6b092139.tar.gz
test-io-stream-closing-write: Handle partial I/O
-rw-r--r--tests/test-io-stream-closing-write.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/tests/test-io-stream-closing-write.c b/tests/test-io-stream-closing-write.c
index 613abb1..60b4904 100644
--- a/tests/test-io-stream-closing-write.c
+++ b/tests/test-io-stream-closing-write.c
@@ -54,15 +54,15 @@ GCond count_cond;
static void
read_thread_cb (GInputStream *input_stream, TestIOStreamThreadData *data)
{
+ guint8 buf[MESSAGE_SIZE];
+ gsize bytes_read = 0;
gpointer tmp;
guint stream_id;
- GError *error = NULL;
- gssize len;
- guint8 buf[MESSAGE_SIZE];
/* Block on receiving some data. */
- len = g_input_stream_read (input_stream, buf, sizeof (buf), NULL, &error);
- g_assert_cmpint (len, ==, sizeof(buf));
+ g_input_stream_read_all (input_stream, buf, sizeof (buf), &bytes_read, NULL,
+ NULL);
+ g_assert_cmpint (bytes_read, ==, sizeof (buf));
g_mutex_lock (&count_lock);
count++;
@@ -87,8 +87,9 @@ read_thread_cb (GInputStream *input_stream, TestIOStreamThreadData *data)
static void
write_thread_cb (GOutputStream *output_stream, TestIOStreamThreadData *data)
{
+ gboolean success;
gchar buf[MESSAGE_SIZE] = {0};
- gssize ret;
+ gsize bytes_written;
GError *error = NULL;
g_mutex_lock (&count_lock);
@@ -97,16 +98,16 @@ write_thread_cb (GOutputStream *output_stream, TestIOStreamThreadData *data)
g_mutex_unlock (&count_lock);
do {
+ bytes_written = 0;
g_assert_no_error (error);
- ret = g_output_stream_write (output_stream, buf, sizeof (buf), NULL,
- &error);
+ success = g_output_stream_write_all (output_stream, buf, sizeof (buf),
+ &bytes_written, NULL, &error);
if (!data->user_data) {
- g_assert_cmpint (ret, ==, sizeof (buf));
+ g_assert_cmpint (bytes_written, ==, sizeof (buf));
return;
}
- } while (ret > 0);
- g_assert_cmpint (ret, ==, -1);
+ } while (success);
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CLOSED);
g_clear_error (&error);