[glib] tests: add a test for the previous commit
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] tests: add a test for the previous commit
- Date: Tue, 25 Jun 2013 13:36:14 +0000 (UTC)
commit 5989651bee6bf8d8c50b180fa6295d824caa37de
Author: Dan Winship <danw gnome org>
Date: Tue Jun 25 09:34:29 2013 -0400
tests: add a test for the previous commit
glib/tests/mainloop.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 50 insertions(+), 1 deletions(-)
---
diff --git a/glib/tests/mainloop.c b/glib/tests/mainloop.c
index b37821d..7d61d7a 100644
--- a/glib/tests/mainloop.c
+++ b/glib/tests/mainloop.c
@@ -568,6 +568,52 @@ test_swapping_child_sources (void)
g_main_context_unref (ctx);
}
+static gboolean
+add_source_callback (gpointer user_data)
+{
+ GMainLoop *loop = user_data;
+ GSource *self = g_main_current_source (), *child;
+ GIOChannel *io;
+
+ /* It doesn't matter whether this is a valid fd or not; it never
+ * actually gets polled; the test is just checking that
+ * g_source_add_child_source() doesn't crash.
+ */
+ io = g_io_channel_unix_new (0);
+ child = g_io_create_watch (io, G_IO_IN);
+ g_source_add_child_source (self, child);
+ g_source_unref (child);
+ g_io_channel_unref (io);
+
+ g_main_loop_quit (loop);
+ return FALSE;
+}
+
+static void
+test_blocked_child_sources (void)
+{
+ GMainContext *ctx;
+ GMainLoop *loop;
+ GSource *source;
+
+ g_test_bug ("701283");
+
+ ctx = g_main_context_new ();
+ loop = g_main_loop_new (ctx, FALSE);
+
+ source = g_idle_source_new ();
+ g_source_set_callback (source, add_source_callback, loop, NULL);
+ g_source_attach (source, ctx);
+
+ g_main_loop_run (loop);
+
+ g_source_destroy (source);
+ g_source_unref (source);
+
+ g_main_loop_unref (loop);
+ g_main_context_unref (ctx);
+}
+
typedef struct {
GMainContext *ctx;
GMainLoop *loop;
@@ -721,7 +767,6 @@ add_idle_source (GMainContext *ctx,
return source;
}
-/* https://bugzilla.gnome.org/show_bug.cgi?id=687098 */
static void
test_mainloop_overflow (void)
{
@@ -731,6 +776,8 @@ test_mainloop_overflow (void)
TestOverflowData data;
guint i;
+ g_test_bug ("687098");
+
memset (&data, 0, sizeof (data));
ctx = GLIB_PRIVATE_CALL (g_main_context_new_with_next_id) (G_MAXUINT-1);
@@ -1281,6 +1328,7 @@ int
main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
+ g_test_bug_base ("http://bugzilla.gnome.org/");
g_test_add_func ("/maincontext/basic", test_maincontext_basic);
g_test_add_func ("/mainloop/basic", test_mainloop_basic);
@@ -1290,6 +1338,7 @@ main (int argc, char *argv[])
g_test_add_func ("/mainloop/child_sources", test_child_sources);
g_test_add_func ("/mainloop/recursive_child_sources", test_recursive_child_sources);
g_test_add_func ("/mainloop/swapping_child_sources", test_swapping_child_sources);
+ g_test_add_func ("/mainloop/blocked_child_sources", test_blocked_child_sources);
g_test_add_func ("/mainloop/source_time", test_source_time);
g_test_add_func ("/mainloop/overflow", test_mainloop_overflow);
g_test_add_func ("/mainloop/ready-time", test_ready_time);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]