[libpeas] Fix refcount issues in the test suite
- From: Garrett Regier <gregier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libpeas] Fix refcount issues in the test suite
- Date: Fri, 18 Feb 2011 01:08:05 +0000 (UTC)
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]