[glib] A simple test for polling on a file-like descriptor
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] A simple test for polling on a file-like descriptor
- Date: Sat, 28 Jun 2014 17:57:02 +0000 (UTC)
commit c0e8f8a8dbd0dc2c92cd7b7b450d624585570d05
Author: Mikhail Zabaluev <mikhail zabaluev gmail com>
Date: Tue Sep 17 09:07:07 2013 +0300
A simple test for polling on a file-like descriptor
https://bugzilla.gnome.org/show_bug.cgi?id=699132
glib/tests/mainloop.c | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
---
diff --git a/glib/tests/mainloop.c b/glib/tests/mainloop.c
index 124ace5..df1dfb6 100644
--- a/glib/tests/mainloop.c
+++ b/glib/tests/mainloop.c
@@ -1462,6 +1462,48 @@ test_source_unix_fd_api (void)
close (fds_b[1]);
}
+static gboolean
+unixfd_quit_loop (gint fd,
+ GIOCondition condition,
+ gpointer user_data)
+{
+ GMainLoop *loop = user_data;
+
+ g_main_loop_quit (loop);
+
+ return FALSE;
+}
+
+static void
+test_unix_file_poll (void)
+{
+ gint fd;
+ GSource *source;
+ GMainLoop *loop;
+
+ fd = open ("/dev/null", O_RDONLY);
+ g_assert (fd >= 0);
+
+ loop = g_main_loop_new (NULL, FALSE);
+
+ source = g_unix_fd_source_new (fd, G_IO_IN);
+ g_source_set_callback (source, (GSourceFunc) unixfd_quit_loop, loop, NULL);
+ g_source_attach (source, NULL);
+
+ /* Should not block */
+ g_main_loop_run (loop);
+
+ g_source_destroy (source);
+
+ assert_main_context_state (0);
+
+ g_source_unref (source);
+
+ g_main_loop_unref (loop);
+
+ close (fd);
+}
+
#endif
static gboolean
@@ -1542,6 +1584,7 @@ main (int argc, char *argv[])
g_test_add_func ("/mainloop/unix-fd-source", test_unix_fd_source);
g_test_add_func ("/mainloop/source-unix-fd-api", test_source_unix_fd_api);
g_test_add_func ("/mainloop/wait", test_mainloop_wait);
+ g_test_add_func ("/mainloop/unix-file-poll", test_unix_file_poll);
#endif
return g_test_run ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]