[libpeas] Fix refcount issues in the test suite



commit 984f23f66f21464a400251094f3fe70f51a9ad4a
Author: Garrett Regier <alias301 gmail com>
Date:   Thu Feb 17 07:16:43 2011 -0800

    Fix refcount issues in the test suite

 tests/libpeas-gtk/plugin-manager-store.c  |    3 +++
 tests/libpeas-gtk/plugin-manager-view.c   |    3 +++
 tests/libpeas-gtk/plugin-manager.c        |   11 +++++++++--
 tests/libpeas/engine.c                    |    7 +++++++
 tests/libpeas/extension-python.c          |    1 +
 tests/libpeas/extension-seed.c            |    1 +
 tests/libpeas/testing/testing-extension.h |    1 +
 7 files changed, 25 insertions(+), 2 deletions(-)
---
diff --git a/tests/libpeas-gtk/plugin-manager-store.c b/tests/libpeas-gtk/plugin-manager-store.c
index e3f2a0b..db70688 100644
--- a/tests/libpeas-gtk/plugin-manager-store.c
+++ b/tests/libpeas-gtk/plugin-manager-store.c
@@ -77,6 +77,8 @@ test_setup (TestFixture   *fixture,
 
   /* Set the model, filter and store */
   g_object_notify (G_OBJECT (fixture->tree_view), "model");
+
+  g_object_ref_sink (fixture->tree_view);
 }
 
 static void
@@ -84,6 +86,7 @@ test_teardown (TestFixture   *fixture,
                gconstpointer  data)
 {
   gtk_widget_destroy (GTK_WIDGET (fixture->tree_view));
+  g_object_unref (fixture->tree_view);
 
   testing_engine_free (fixture->engine);
 }
diff --git a/tests/libpeas-gtk/plugin-manager-view.c b/tests/libpeas-gtk/plugin-manager-view.c
index e46f4f7..0bbb93d 100644
--- a/tests/libpeas-gtk/plugin-manager-view.c
+++ b/tests/libpeas-gtk/plugin-manager-view.c
@@ -75,6 +75,8 @@ test_setup (TestFixture   *fixture,
 
   /* Set the model and store */
   g_object_notify (G_OBJECT (fixture->tree_view), "model");
+
+  g_object_ref_sink (fixture->tree_view);
 }
 
 static void
@@ -82,6 +84,7 @@ test_teardown (TestFixture   *fixture,
                gconstpointer  data)
 {
   gtk_widget_destroy (GTK_WIDGET (fixture->tree_view));
+  g_object_unref (fixture->tree_view);
 
   testing_engine_free (fixture->engine);
 }
diff --git a/tests/libpeas-gtk/plugin-manager.c b/tests/libpeas-gtk/plugin-manager.c
index 0d3836f..fb380a6 100644
--- a/tests/libpeas-gtk/plugin-manager.c
+++ b/tests/libpeas-gtk/plugin-manager.c
@@ -35,6 +35,7 @@ typedef struct _TestFixture TestFixture;
 struct _TestFixture {
   PeasEngine *engine;
   GtkWidget *window;
+  GtkWindowGroup *window_group;
   PeasGtkPluginManager *manager;
   PeasGtkPluginManagerView *view;
   GtkTreeSelection *selection;
@@ -69,6 +70,7 @@ test_setup (TestFixture   *fixture,
 
   fixture->engine = testing_engine_new ();
   fixture->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  fixture->window_group = gtk_window_group_new ();
   fixture->manager = PEAS_GTK_PLUGIN_MANAGER (peas_gtk_plugin_manager_new (NULL));
   fixture->view = PEAS_GTK_PLUGIN_MANAGER_VIEW (peas_gtk_plugin_manager_get_view (fixture->manager));
   fixture->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (fixture->view));
@@ -77,7 +79,7 @@ test_setup (TestFixture   *fixture,
    * window group unless one has already been created and
    * find_window_by_title() will need need it to be in the group
    */
-  gtk_window_group_add_window (gtk_window_group_new (),
+  gtk_window_group_add_window (fixture->window_group,
                                GTK_WINDOW (fixture->window));
 
   gtk_container_add (GTK_CONTAINER (fixture->window),
@@ -123,7 +125,8 @@ static void
 test_teardown (TestFixture   *fixture,
                gconstpointer  data)
 {
-  gtk_widget_destroy (GTK_WIDGET (fixture->manager));
+  gtk_widget_destroy (GTK_WIDGET (fixture->window));
+  g_object_unref (fixture->window_group);
 
   testing_engine_free (fixture->engine);
 }
@@ -312,6 +315,8 @@ test_gtk_plugin_manager_about_dialog (TestFixture *fixture)
 
   for (i = 0; authors_plugin[i] == NULL && authors_dialog[i] == NULL; ++i)
     g_assert_cmpstr (authors_plugin[i], ==, authors_dialog[i]);
+
+  gtk_widget_destroy (window);
 }
 
 static void
@@ -380,6 +385,8 @@ test_gtk_plugin_manager_configure_dialog (TestFixture *fixture)
   g_assert (help_button != NULL);
 
   g_list_free (list);
+
+  gtk_widget_destroy (window);
 }
 
 static void
diff --git a/tests/libpeas/engine.c b/tests/libpeas/engine.c
index fe593a3..a8e549f 100644
--- a/tests/libpeas/engine.c
+++ b/tests/libpeas/engine.c
@@ -83,6 +83,11 @@ test_engine_dispose (PeasEngine *engine)
   g_object_run_dispose (G_OBJECT (engine));
   g_object_run_dispose (G_OBJECT (engine));
   g_object_run_dispose (G_OBJECT (engine));
+
+  /* Seems we have to explicitly unref it
+   * because testing_engine_free() does not
+   */
+  g_object_unref (G_OBJECT (engine));
 }
 
 static void
@@ -96,6 +101,8 @@ test_engine_get_default (PeasEngine *engine)
   g_object_unref (engine);
 
   g_assert (peas_engine_get_default () == peas_engine_get_default ());
+
+  g_object_unref (peas_engine_get_default ());
 }
 
 static void
diff --git a/tests/libpeas/extension-python.c b/tests/libpeas/extension-python.c
index 3adef09..8de154f 100644
--- a/tests/libpeas/extension-python.c
+++ b/tests/libpeas/extension-python.c
@@ -38,6 +38,7 @@ main (int   argc,
   testing_init ();
 
   peas_engine_enable_loader (peas_engine_get_default (), "python");
+  g_object_unref (peas_engine_get_default ());
 
   testing_extension_set_plugin_ ("extension-" "python");
 
diff --git a/tests/libpeas/extension-seed.c b/tests/libpeas/extension-seed.c
index 42d3bc5..a96a71e 100644
--- a/tests/libpeas/extension-seed.c
+++ b/tests/libpeas/extension-seed.c
@@ -38,6 +38,7 @@ main (int   argc,
   testing_init ();
 
   peas_engine_enable_loader (peas_engine_get_default (), "seed");
+  g_object_unref (peas_engine_get_default ());
 
   testing_extension_set_plugin_ ("extension-" "seed");
 
diff --git a/tests/libpeas/testing/testing-extension.h b/tests/libpeas/testing/testing-extension.h
index 34b378b..a57cc31 100644
--- a/tests/libpeas/testing/testing-extension.h
+++ b/tests/libpeas/testing/testing-extension.h
@@ -76,6 +76,7 @@ main (int   argc, \
   testing_init (); \
 \
   peas_engine_enable_loader (peas_engine_get_default (), loader); \
+  g_object_unref (peas_engine_get_default ()); \
 \
   testing_extension_set_plugin_ ("extension-" loader); \
 \



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]