Merge branch 'w32-tests' into 'main'

Fix test suite on Windows

See merge request GNOME/glib!2449
This commit is contained in:
Philip Withnall
2022-04-14 12:16:19 +00:00
4 changed files with 21 additions and 13 deletions

View File

@@ -654,7 +654,11 @@ test_internal_enhanced_stdio (void)
g_assert_cmpuint (alsize_ps, <, 0x40000000); g_assert_cmpuint (alsize_ps, <, 0x40000000);
g_assert_cmpuint (size_ps, >, G_GUINT64_CONSTANT (0xFFFFFFFF)); g_assert_cmpuint (size_ps, >, G_GUINT64_CONSTANT (0xFFFFFFFF));
g_assert_cmpuint (statbuf_ps.st_size, >, 0); g_assert_cmpuint (statbuf_ps.st_size, >, 0);
#if defined(_WIN64)
g_assert_cmpuint (statbuf_ps.st_size, ==, G_GUINT64_CONSTANT (0x10000000f));
#else
g_assert_cmpuint (statbuf_ps.st_size, <=, 0xFFFFFFFF); g_assert_cmpuint (statbuf_ps.st_size, <=, 0xFFFFFFFF);
#endif
g_object_unref (fi_ps); g_object_unref (fi_ps);
g_object_unref (gf_ps); g_object_unref (gf_ps);

View File

@@ -2243,7 +2243,7 @@ test_credentials_unix_socketpair (void)
{ {
gint fds[2]; gint fds[2];
gint status; gint status;
GSocket *sock; GSocket *sock[2];
GError *error = NULL; GError *error = NULL;
GCredentials *creds; GCredentials *creds;
@@ -2259,9 +2259,12 @@ test_credentials_unix_socketpair (void)
#endif #endif
g_assert_cmpint (status, ==, 0); g_assert_cmpint (status, ==, 0);
sock = g_socket_new_from_fd (fds[0], &error); sock[0] = g_socket_new_from_fd (fds[0], &error);
g_assert_no_error (error);
sock[1] = g_socket_new_from_fd (fds[1], &error);
g_assert_no_error (error);
creds = g_socket_get_credentials (sock, &error); creds = g_socket_get_credentials (sock[0], &error);
if (creds != NULL) if (creds != NULL)
{ {
gchar *str = g_credentials_to_string (creds); gchar *str = g_credentials_to_string (creds);
@@ -2276,8 +2279,8 @@ test_credentials_unix_socketpair (void)
g_clear_error (&error); g_clear_error (&error);
} }
g_object_unref (sock); g_object_unref (sock[0]);
g_close (fds[1], NULL); g_object_unref (sock[1]);
} }
#endif #endif

View File

@@ -44,7 +44,7 @@ G_BEGIN_DECLS
typedef struct _stat32 GStatBuf; typedef struct _stat32 GStatBuf;
#elif defined(__MINGW64_VERSION_MAJOR) && defined(_WIN64) #elif defined(_WIN64)
typedef struct _stat64 GStatBuf; typedef struct _stat64 GStatBuf;

View File

@@ -100,7 +100,10 @@ test_message_cb1 (GIOChannel * channel,
g_test_log_buffer_push (user_data, read_bytes, buf); g_test_log_buffer_push (user_data, read_bytes, buf);
} }
g_assert_cmpuint (status, ==, G_IO_STATUS_AGAIN); if (status == G_IO_STATUS_EOF)
return FALSE;
else
g_assert_cmpuint (status, ==, G_IO_STATUS_AGAIN);
return TRUE; return TRUE;
} }
@@ -133,7 +136,6 @@ test_message (void)
GMainLoop * loop; GMainLoop * loop;
GError * error = NULL; GError * error = NULL;
gulong child_source; gulong child_source;
gulong io_source;
GPid pid = 0; GPid pid = 0;
int pipes[2]; int pipes[2];
int passed = 0; int passed = 0;
@@ -159,6 +161,7 @@ test_message (void)
g_error ("error spawning the test: %s", error->message); g_error ("error spawning the test: %s", error->message);
} }
close (pipes[1]);
tlb = g_test_log_buffer_new (); tlb = g_test_log_buffer_new ();
loop = g_main_loop_new (NULL, FALSE); loop = g_main_loop_new (NULL, FALSE);
@@ -181,7 +184,7 @@ test_message (void)
g_assert (g_io_channel_get_encoding (channel) == NULL); g_assert (g_io_channel_get_encoding (channel) == NULL);
g_assert (!g_io_channel_get_buffered (channel)); g_assert (!g_io_channel_get_buffered (channel));
io_source = g_io_add_watch (channel, G_IO_IN, test_message_cb1, tlb); g_io_add_watch (channel, G_IO_IN, test_message_cb1, tlb);
child_source = g_child_watch_add (pid, test_message_cb2, loop); child_source = g_child_watch_add (pid, test_message_cb2, loop);
g_main_loop_run (loop); g_main_loop_run (loop);
@@ -191,7 +194,6 @@ test_message (void)
g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "Source ID*"); g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "Source ID*");
g_assert (!g_source_remove (child_source)); g_assert (!g_source_remove (child_source));
g_test_assert_expected_messages (); g_test_assert_expected_messages ();
g_assert (g_source_remove (io_source));
g_io_channel_unref (channel); g_io_channel_unref (channel);
for (msg = g_test_log_buffer_pop (tlb); for (msg = g_test_log_buffer_pop (tlb);
@@ -264,7 +266,6 @@ test_error (void)
GMainLoop * loop; GMainLoop * loop;
GError * error = NULL; GError * error = NULL;
gulong child_source; gulong child_source;
gulong io_source;
GPid pid = 0; GPid pid = 0;
int pipes[2]; int pipes[2];
@@ -286,6 +287,7 @@ test_error (void)
g_error ("error spawning the test: %s", error->message); g_error ("error spawning the test: %s", error->message);
} }
close (pipes[1]);
tlb = g_test_log_buffer_new (); tlb = g_test_log_buffer_new ();
loop = g_main_loop_new (NULL, FALSE); loop = g_main_loop_new (NULL, FALSE);
@@ -299,7 +301,7 @@ test_error (void)
g_io_channel_set_buffered (channel, FALSE); g_io_channel_set_buffered (channel, FALSE);
g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL); g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, NULL);
io_source = g_io_add_watch (channel, G_IO_IN, test_message_cb1, tlb); g_io_add_watch (channel, G_IO_IN, test_message_cb1, tlb);
child_source = g_child_watch_add (pid, test_message_cb2, loop); child_source = g_child_watch_add (pid, test_message_cb2, loop);
g_main_loop_run (loop); g_main_loop_run (loop);
@@ -309,7 +311,6 @@ test_error (void)
g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "Source ID*"); g_test_expect_message ("GLib", G_LOG_LEVEL_CRITICAL, "Source ID*");
g_assert (!g_source_remove (child_source)); g_assert (!g_source_remove (child_source));
g_test_assert_expected_messages (); g_test_assert_expected_messages ();
g_assert (g_source_remove (io_source));
g_io_channel_unref (channel); g_io_channel_unref (channel);
for (msg = g_test_log_buffer_pop (tlb); for (msg = g_test_log_buffer_pop (tlb);