[gcr] More reliable means of checking if object was finalized
- From: Stefan Walter <stefw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gcr] More reliable means of checking if object was finalized
- Date: Sat, 17 Aug 2013 08:51:23 +0000 (UTC)
commit dd6aba8b94f90265124b0b11e279677769906bb1
Author: Stef Walter <stefw gnome org>
Date: Sat Aug 17 10:49:24 2013 +0200
More reliable means of checking if object was finalized
Don't try to use G_IS_OBJECT() to see if an object was finalized
as this segfaults in corner cases, even with our crafty check
for a pointer within our memory space.
https://bugzilla.gnome.org/show_bug.cgi?id=705139
egg/egg-testing.c | 22 -----------------
egg/egg-testing.h | 10 -------
gck/tests/test-gck-crypto.c | 15 +++++++----
gck/tests/test-gck-enumerator.c | 18 +++++++++----
gck/tests/test-gck-module.c | 3 +-
gck/tests/test-gck-session.c | 15 +++++++----
gcr/tests/test-gnupg-key.c | 3 +-
gcr/tests/test-gnupg-process.c | 18 ++++++++++++-
gcr/tests/test-memory-icon.c | 9 ++++--
gcr/tests/test-parser.c | 3 +-
gcr/tests/test-secret-exchange.c | 7 ++++-
gcr/tests/test-subject-public-key.c | 16 ++++++++----
gcr/tests/test-system-prompt.c | 45 +++++++++++++++++++++++-----------
ui/tests/frob-system-prompt.c | 3 +-
14 files changed, 108 insertions(+), 79 deletions(-)
---
diff --git a/egg/egg-testing.c b/egg/egg-testing.c
index 2f7aada..805a972 100644
--- a/egg/egg-testing.c
+++ b/egg/egg-testing.c
@@ -108,28 +108,6 @@ egg_assertion_message_cmpmem (const char *domain,
static void (*wait_stop_impl) (void);
static gboolean (*wait_until_impl) (int timeout);
-void
-egg_assertion_not_object (const char *domain,
- const char *file,
- int line,
- const char *func,
- const char *expr,
- gpointer was_object)
-{
- gchar *s;
-
-#ifdef WITH_VALGRIND
- if (RUNNING_ON_VALGRIND)
- return;
-#endif
-
- if (G_IS_OBJECT (was_object)) {
- s = g_strdup_printf ("assertion failed: %s is still referenced", expr);
- g_assertion_message (domain, file, line, func, s);
- g_free (s);
- }
-}
-
#if 0
void
egg_test_wait_stop (void)
diff --git a/egg/egg-testing.h b/egg/egg-testing.h
index a034b15..44c7fb3 100644
--- a/egg/egg-testing.h
+++ b/egg/egg-testing.h
@@ -50,16 +50,6 @@ void egg_assertion_message_cmpmem (const char *domain, const char *
gsize n_arg1, const char *cmp,
gconstpointer arg2, gsize n_arg2);
-#define egg_assert_not_object(p) \
- (egg_assertion_not_object (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, #p, (p)))
-
-void egg_assertion_not_object (const char *domain,
- const char *file,
- int line,
- const char *func,
- const char *expr,
- gpointer was_object);
-
gboolean egg_testing_on_valgrind (void);
gchar * egg_test_escape_data (const guchar *data,
diff --git a/gck/tests/test-gck-crypto.c b/gck/tests/test-gck-crypto.c
index c70a765..492ad06 100644
--- a/gck/tests/test-gck-crypto.c
+++ b/gck/tests/test-gck-crypto.c
@@ -60,6 +60,7 @@ setup (Test *test, gconstpointer unused)
test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
g_assert_no_error (err);
g_assert (GCK_IS_MODULE (test->module));
+ g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module);
slots = gck_module_get_slots (test->module, TRUE);
g_assert (slots != NULL);
@@ -67,6 +68,7 @@ setup (Test *test, gconstpointer unused)
test->session = gck_slot_open_session (slots->data, 0, NULL, &err);
g_assert_no_error (err);
g_assert (GCK_IS_SESSION (test->session));
+ g_object_add_weak_pointer (G_OBJECT (test->session), (gpointer *)&test->session);
slot = gck_session_get_slot (test->session);
g_assert (slot);
@@ -74,6 +76,7 @@ setup (Test *test, gconstpointer unused)
test->session_with_auth = gck_session_from_handle (slot, gck_session_get_handle (test->session),
GCK_SESSION_AUTHENTICATE);
g_signal_connect (test->session_with_auth, "discard-handle", G_CALLBACK (on_discard_handle_ignore),
NULL);
g_assert (test->session_with_auth);
+ g_object_add_weak_pointer (G_OBJECT (test->session_with_auth), (gpointer *)&test->session_with_auth);
g_object_unref (slot);
gck_list_unref_free (slots);
@@ -86,9 +89,9 @@ teardown (Test *test, gconstpointer unused)
g_object_unref (test->module);
g_object_unref (test->session_with_auth);
- egg_assert_not_object (test->session);
- egg_assert_not_object (test->session_with_auth);
- egg_assert_not_object (test->module);
+ g_assert (test->session == NULL);
+ g_assert (test->session_with_auth == NULL);
+ g_assert (test->module == NULL);
}
static void
@@ -280,6 +283,7 @@ test_login_context_specific (Test *test, gconstpointer unused)
/* Find the right key */
key = find_key (test->session, CKA_SIGN, CKM_MOCK_PREFIX);
g_assert (GCK_IS_OBJECT (key));
+ g_object_add_weak_pointer (G_OBJECT (key), (gpointer *)&key);
/* Simple one */
output = gck_session_sign (test->session, key, CKM_MOCK_PREFIX, (const guchar*)"TV Monster", 11,
&n_output, NULL, &error);
@@ -288,7 +292,7 @@ test_login_context_specific (Test *test, gconstpointer unused)
g_error_free (error);
g_object_unref (key);
- egg_assert_not_object (key);
+ g_assert (key == NULL);
}
static void
@@ -349,6 +353,7 @@ test_verify (Test *test, gconstpointer unused)
/* Find the right key */
key = find_key (test->session, CKA_VERIFY, CKM_MOCK_PREFIX);
g_assert (GCK_IS_OBJECT (key));
+ g_object_add_weak_pointer (G_OBJECT (key), (gpointer *)&key);
/* Simple one */
ret = gck_session_verify (test->session, key, CKM_MOCK_PREFIX, (const guchar*)"Labarbara", 10,
@@ -386,7 +391,7 @@ test_verify (Test *test, gconstpointer unused)
g_object_unref (result);
g_object_unref (key);
- egg_assert_not_object (key);
+ g_assert (key == NULL);
}
static void
diff --git a/gck/tests/test-gck-enumerator.c b/gck/tests/test-gck-enumerator.c
index bbbea5f..25197f5 100644
--- a/gck/tests/test-gck-enumerator.c
+++ b/gck/tests/test-gck-enumerator.c
@@ -53,6 +53,7 @@ setup (Test *test, gconstpointer unused)
test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
g_assert_no_error (err);
g_assert (GCK_IS_MODULE (test->module));
+ g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module);
test->modules = g_list_append (NULL, g_object_ref (test->module));
}
@@ -63,7 +64,7 @@ teardown (Test *test, gconstpointer unused)
gck_list_unref_free (test->modules);
g_object_unref (test->module);
- egg_assert_not_object (test->module);
+ g_assert (test->module == NULL);
g_thread_pool_stop_unused_threads ();
}
@@ -294,8 +295,10 @@ test_authenticate_interaction (Test *test,
uri_data = gck_uri_data_new ();
en = _gck_enumerator_new_for_modules (test->modules, GCK_SESSION_LOGIN_USER, uri_data);
g_assert (GCK_IS_ENUMERATOR (en));
+ g_object_add_weak_pointer (G_OBJECT (en), (gpointer *)&en);
interaction = mock_interaction_new ("booo");
+ g_object_add_weak_pointer (G_OBJECT (interaction), (gpointer *)&interaction);
g_object_set (en, "interaction", interaction, NULL);
check = NULL;
@@ -306,13 +309,14 @@ test_authenticate_interaction (Test *test,
obj = gck_enumerator_next (en, NULL, &error);
g_assert (GCK_IS_OBJECT (obj));
+ g_object_add_weak_pointer (G_OBJECT (obj), (gpointer *)&obj);
g_object_unref (obj);
g_object_unref (en);
- egg_assert_not_object (en);
- egg_assert_not_object (obj);
- egg_assert_not_object (interaction);
+ g_assert (en == NULL);
+ g_assert (obj == NULL);
+ g_assert (interaction == NULL);
}
static gboolean
@@ -348,17 +352,19 @@ test_authenticate_compat (Test *test,
uri_data = gck_uri_data_new ();
en = _gck_enumerator_new_for_modules (test->modules, GCK_SESSION_LOGIN_USER, uri_data);
g_assert (GCK_IS_ENUMERATOR (en));
+ g_object_add_weak_pointer (G_OBJECT (en), (gpointer *)&en);
obj = gck_enumerator_next (en, NULL, &error);
g_assert (GCK_IS_OBJECT (obj));
+ g_object_add_weak_pointer (G_OBJECT (obj), (gpointer *)&obj);
g_object_unref (obj);
g_object_unref (en);
g_signal_handler_disconnect (test->modules->data, sig);
- egg_assert_not_object (obj);
- egg_assert_not_object (en);
+ g_assert (obj == NULL);
+ g_assert (en == NULL);
}
static void
diff --git a/gck/tests/test-gck-module.c b/gck/tests/test-gck-module.c
index 99d2d61..10c7606 100644
--- a/gck/tests/test-gck-module.c
+++ b/gck/tests/test-gck-module.c
@@ -45,13 +45,14 @@ setup (Test *test, gconstpointer unused)
test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
g_assert_no_error (err);
g_assert (test->module);
+ g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module);
}
static void
teardown (Test *test, gconstpointer unused)
{
g_object_unref (test->module);
- egg_assert_not_object (test->module);
+ g_assert (test->module == NULL);
}
static void
diff --git a/gck/tests/test-gck-session.c b/gck/tests/test-gck-session.c
index f23a832..1bd2569 100644
--- a/gck/tests/test-gck-session.c
+++ b/gck/tests/test-gck-session.c
@@ -53,6 +53,7 @@ setup (Test *test, gconstpointer unused)
test->module = gck_module_initialize (BUILDDIR "/.libs/libmock-test-module.so", NULL, &err);
g_assert_no_error (err);
g_assert (GCK_IS_MODULE (test->module));
+ g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module);
slots = gck_module_get_slots (test->module, TRUE);
g_assert (slots != NULL);
@@ -60,10 +61,12 @@ setup (Test *test, gconstpointer unused)
test->slot = GCK_SLOT (slots->data);
g_object_ref (test->slot);
gck_list_unref_free (slots);
+ g_object_add_weak_pointer (G_OBJECT (test->slot), (gpointer *)&test->slot);
test->session = gck_slot_open_session (test->slot, 0, NULL, &err);
g_assert_no_error (err);
g_assert (GCK_IS_SESSION (test->session));
+ g_object_add_weak_pointer (G_OBJECT (test->session), (gpointer *)&test->session);
}
static void
@@ -73,9 +76,9 @@ teardown (Test *test, gconstpointer unused)
g_object_unref (test->slot);
g_object_unref (test->module);
- egg_assert_not_object (test->session);
- egg_assert_not_object (test->slot);
- egg_assert_not_object (test->module);
+ g_assert (test->session == NULL);
+ g_assert (test->slot == NULL);
+ g_assert (test->module == NULL);
}
static void
@@ -137,15 +140,17 @@ test_open_close_session (Test *test, gconstpointer unused)
g_assert (result != NULL);
/* Get the result */
+ g_object_add_weak_pointer (G_OBJECT (result), (gpointer *)&result);
sess = gck_slot_open_session_finish (test->slot, result, &err);
g_assert_no_error (err);
g_assert (GCK_IS_SESSION (sess));
+ g_object_add_weak_pointer (G_OBJECT (sess), (gpointer *)&sess);
g_object_unref (result);
- egg_assert_not_object (result);
+ g_assert (result == NULL);
g_object_unref (sess);
- egg_assert_not_object (sess);
+ g_assert (sess == NULL);
}
static void
diff --git a/gcr/tests/test-gnupg-key.c b/gcr/tests/test-gnupg-key.c
index c31c264..1bf4dfc 100644
--- a/gcr/tests/test-gnupg-key.c
+++ b/gcr/tests/test-gnupg-key.c
@@ -58,6 +58,7 @@ setup (Test *test, gconstpointer unused)
test->records = records;
test->key = _gcr_gnupg_key_new (records, NULL);
+ g_object_add_weak_pointer (G_OBJECT (test->key), (gpointer *)&test->key);
records = g_ptr_array_new_with_free_func (_gcr_record_free);
g_ptr_array_add (records, _gcr_record_parse_colons
("pub:u:2048:1:4842D952AFC000FD:1305189489:::u:::scESC:", -1));
@@ -78,7 +79,7 @@ static void
teardown (Test *test, gconstpointer unused)
{
g_object_unref (test->key);
- egg_assert_not_object (test->key);
+ g_assert (test->key == NULL);
g_ptr_array_unref (test->records);
g_ptr_array_unref (test->pubset);
diff --git a/gcr/tests/test-gnupg-process.c b/gcr/tests/test-gnupg-process.c
index aa18c01..76048ec 100644
--- a/gcr/tests/test-gnupg-process.c
+++ b/gcr/tests/test-gnupg-process.c
@@ -63,9 +63,9 @@ teardown (Test *test, gconstpointer unused)
while (g_main_context_iteration (NULL, FALSE));
if (test->result)
- egg_assert_not_object (test->result);
+ g_assert (test->result == NULL);
if (test->process)
- egg_assert_not_object (test->process);
+ g_assert (test->process == NULL);
if (test->output_buf)
g_string_free (test->output_buf, TRUE);
@@ -82,6 +82,7 @@ test_create (Test *test, gconstpointer unused)
gchar *value;
test->process = _gcr_gnupg_process_new ("/the/directory", "/path/to/executable");
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_object_get (test->process, "directory", &value, NULL);
g_assert_cmpstr (value, ==, "/the/directory");
@@ -106,6 +107,7 @@ on_async_ready (GObject *source, GAsyncResult *result, gpointer user_data)
g_object_unref (result_source);
test->result = g_object_ref (result);
+ g_object_add_weak_pointer (G_OBJECT (test->result), (gpointer *)&test->result);
egg_test_wait_stop ();
}
@@ -178,6 +180,7 @@ test_run_simple_output (Test *test, gconstpointer unused)
script = build_script_path ("mock-simple-output");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
@@ -205,6 +208,7 @@ test_run_simple_error (Test *test, gconstpointer unused)
script = build_script_path ("mock-simple-error");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
g_signal_connect (test->process, "error-line", G_CALLBACK (on_process_error_line), test);
@@ -231,6 +235,7 @@ test_run_status_and_output (Test *test, gconstpointer unused)
script = build_script_path ("mock-status-and-output");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
@@ -269,6 +274,7 @@ test_run_status_and_attribute (Test *test, gconstpointer unused)
script = build_script_path ("mock-status-and-attribute");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
output = _gcr_callback_output_stream_new (on_process_attribute_data, test, NULL);
@@ -320,6 +326,7 @@ test_run_arguments_and_environment (Test *test, gconstpointer unused)
script = build_script_path ("mock-arguments-environ");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
@@ -355,6 +362,7 @@ test_run_with_homedir (Test *test, gconstpointer unused)
script = build_script_path ("mock-with-homedir");
test->process = _gcr_gnupg_process_new (SRCDIR, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
output = _gcr_callback_output_stream_new (on_process_output_data, test, NULL);
@@ -389,6 +397,7 @@ test_run_with_input_and_output (Test *test,
script = build_script_path ("mock-echo");
test->process = _gcr_gnupg_process_new (SRCDIR, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
input = g_memory_input_stream_new_from_data ((gpointer)data, -1, NULL);
@@ -424,6 +433,7 @@ test_run_bad_executable (Test *test, gconstpointer unused)
script = build_script_path ("mock-invalid");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
_gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
@@ -446,6 +456,7 @@ test_run_fail_exit (Test *test, gconstpointer unused)
script = build_script_path ("mock-fail-exit");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
_gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
@@ -469,6 +480,7 @@ test_run_fail_signal (Test *test, gconstpointer unused)
script = build_script_path ("mock-fail-signal");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
_gcr_gnupg_process_run_async (test->process, argv, NULL, 0, NULL, on_async_ready, test);
@@ -495,6 +507,7 @@ test_run_and_cancel (Test *test, gconstpointer unused)
script = build_script_path ("mock-simple-output");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
g_free (script);
_gcr_gnupg_process_run_async (test->process, argv, NULL, 0, cancellable, on_async_ready, test);
@@ -536,6 +549,7 @@ test_run_and_cancel_later (Test *test, gconstpointer unused)
script = build_script_path ("mock-simple-output");
test->process = _gcr_gnupg_process_new (NULL, script);
+ g_object_add_weak_pointer (G_OBJECT (test->process), (gpointer *)&test->process);
output = _gcr_callback_output_stream_new (on_process_output_cancel, NULL, NULL);
_gcr_gnupg_process_set_output_stream (test->process, output);
g_object_unref (output);
diff --git a/gcr/tests/test-memory-icon.c b/gcr/tests/test-memory-icon.c
index bbcacae..abcb265 100644
--- a/gcr/tests/test-memory-icon.c
+++ b/gcr/tests/test-memory-icon.c
@@ -61,6 +61,7 @@ setup (Test *test, gconstpointer unused)
{
test->icon = _gcr_memory_icon_new ("application/octet-stream",
test_data, sizeof (test_data));
+ g_object_add_weak_pointer (G_OBJECT (test->icon), (gpointer *)&test->icon);
}
static void
@@ -70,10 +71,10 @@ teardown (Test *test, gconstpointer unused)
if (test->result) {
g_object_unref (test->result);
- egg_assert_not_object (test->result);
+ g_assert (test->result == NULL);
}
- egg_assert_not_object (test->icon);
+ g_assert (test->icon == NULL);
}
@@ -167,6 +168,7 @@ on_async_ready (GObject *source, GAsyncResult *result, gpointer user_data)
g_object_unref (result_source);
test->result = g_object_ref (result);
+ g_object_add_weak_pointer (G_OBJECT (test->result), (gpointer *)&test->result);
egg_test_wait_stop ();
}
@@ -187,6 +189,7 @@ test_load_async (Test *test, gconstpointer unused)
g_assert (is != NULL);
g_assert_no_error (error);
g_assert_cmpstr (type, ==, "application/octet-stream");
+ g_object_add_weak_pointer (G_OBJECT (is), (gpointer *)&is);
if (!g_input_stream_read_all (is, buf, sizeof (buf), &length, NULL, &error))
g_assert_not_reached ();
@@ -196,7 +199,7 @@ test_load_async (Test *test, gconstpointer unused)
g_free (type);
g_object_unref (is);
- egg_assert_not_object (is);
+ g_assert (is == NULL);
}
int
diff --git a/gcr/tests/test-parser.c b/gcr/tests/test-parser.c
index 8b8b186..510abc0 100644
--- a/gcr/tests/test-parser.c
+++ b/gcr/tests/test-parser.c
@@ -71,6 +71,7 @@ ensure_block_can_be_parsed (GcrDataFormat format,
g_assert (n_block);
parser = gcr_parser_new ();
+ g_object_add_weak_pointer (G_OBJECT (parser), (gpointer *)&parser);
gcr_parser_format_disable (parser, -1);
gcr_parser_format_enable (parser, format);
result = gcr_parser_parse_data (parser, block, n_block, &error);
@@ -82,7 +83,7 @@ ensure_block_can_be_parsed (GcrDataFormat format,
}
g_object_unref (parser);
- egg_assert_not_object (parser);
+ g_assert (parser == NULL);
}
static void
diff --git a/gcr/tests/test-secret-exchange.c b/gcr/tests/test-secret-exchange.c
index 810ec69..dba396e 100644
--- a/gcr/tests/test-secret-exchange.c
+++ b/gcr/tests/test-secret-exchange.c
@@ -40,8 +40,11 @@ setup (Test *test, gconstpointer unused)
{
test->caller = gcr_secret_exchange_new (NULL);
g_assert (GCR_IS_SECRET_EXCHANGE (test->caller));
+ g_object_add_weak_pointer (G_OBJECT (test->caller), (gpointer *)&test->caller);
+
test->callee = gcr_secret_exchange_new (NULL);
g_assert (GCR_IS_SECRET_EXCHANGE (test->callee));
+ g_object_add_weak_pointer (G_OBJECT (test->callee), (gpointer *)&test->callee);
}
static void
@@ -49,10 +52,10 @@ teardown (Test *test,
gconstpointer unused)
{
g_object_unref (test->caller);
- egg_assert_not_object (test->caller);
+ g_assert (test->caller == NULL);
g_object_unref (test->callee);
- egg_assert_not_object (test->callee);
+ g_assert (test->callee == NULL);
}
static void
diff --git a/gcr/tests/test-subject-public-key.c b/gcr/tests/test-subject-public-key.c
index eb06ec2..85927e2 100644
--- a/gcr/tests/test-subject-public-key.c
+++ b/gcr/tests/test-subject-public-key.c
@@ -237,9 +237,12 @@ setup_module (TestModule *test,
gck_assert_cmprv (rv, ==, CKR_OK);
test->module = gck_module_new (&test->funcs);
+ g_object_add_weak_pointer (G_OBJECT (test->module), (gpointer *)&test->module);
+
slot = gck_slot_from_handle (test->module, GCK_MOCK_SLOT_ONE_ID);
test->session = gck_session_open (slot, GCK_SESSION_READ_ONLY, NULL, NULL, &error);
g_assert_no_error (error);
+ g_object_add_weak_pointer (G_OBJECT (test->session), (gpointer *)&test->session);
g_object_unref (slot);
}
@@ -251,10 +254,10 @@ teardown_module (TestModule *test,
CK_RV rv;
g_object_unref (test->session);
- egg_assert_not_object (test->session);
+ g_assert (test->session == NULL);
g_object_unref (test->module);
- egg_assert_not_object (test->module);
+ g_assert (test->module == NULL);
rv = (test->funcs.C_Finalize) (NULL);
gck_assert_cmprv (rv, ==, CKR_OK);
@@ -283,16 +286,19 @@ setup_loading (TestLoading *test,
gck_builder_add_string (&builder, CKA_ID, id);
handle = gck_mock_module_add_object (gck_builder_end (&builder));
test->crt_object = gck_object_from_handle (test->mo.session, handle);
+ g_object_add_weak_pointer (G_OBJECT (test->crt_object), (gpointer *)&test->crt_object);
gck_builder_add_all (&builder, test->at.pub_attrs);
gck_builder_add_string (&builder, CKA_ID, id);
handle = gck_mock_module_add_object (gck_builder_end (&builder));
test->pub_object = gck_object_from_handle (test->mo.session, handle);
+ g_object_add_weak_pointer (G_OBJECT (test->pub_object), (gpointer *)&test->pub_object);
gck_builder_add_all (&builder, test->at.prv_attrs);
gck_builder_add_string (&builder, CKA_ID, id);
handle = gck_mock_module_add_object (gck_builder_end (&builder));
test->prv_object = gck_object_from_handle (test->mo.session, handle);
+ g_object_add_weak_pointer (G_OBJECT (test->prv_object), (gpointer *)&test->prv_object);
}
static void
@@ -300,13 +306,13 @@ teardown_loading (TestLoading *test,
gconstpointer fixture)
{
g_object_unref (test->crt_object);
- egg_assert_not_object (test->crt_object);
+ g_assert (test->crt_object == NULL);
g_object_unref (test->prv_object);
- egg_assert_not_object (test->prv_object);
+ g_assert (test->prv_object == NULL);
g_object_unref (test->pub_object);
- egg_assert_not_object (test->pub_object);
+ g_assert (test->pub_object == NULL);
teardown_module (&test->mo, NULL);
teardown_attributes (&test->at, fixture);
diff --git a/gcr/tests/test-system-prompt.c b/gcr/tests/test-system-prompt.c
index 1135db7..4f24d0d 100644
--- a/gcr/tests/test-system-prompt.c
+++ b/gcr/tests/test-system-prompt.c
@@ -105,13 +105,14 @@ test_prompt_password (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
password = gcr_prompt_password_run (prompt, NULL, &error);
g_assert_no_error (error);
g_assert_cmpstr (password, ==, "booo");
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -127,6 +128,7 @@ test_password_in_exchange (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
gcr_prompt_password_run (prompt, NULL, &error);
g_assert_no_error (error);
@@ -137,7 +139,7 @@ test_password_in_exchange (Test *test,
g_object_unref (exchange);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -159,6 +161,7 @@ test_password_custom_exchange (Test *test,
NULL);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
password = gcr_prompt_password_run (GCR_PROMPT (prompt), NULL, &error);
g_assert_cmpstr (password, ==, "booo");
@@ -169,7 +172,7 @@ test_password_custom_exchange (Test *test,
g_object_unref (exchange);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -203,6 +206,7 @@ test_async_password (Test *test,
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
g_clear_object (&result);
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
gcr_prompt_password_async (prompt, NULL,
on_async_result, &result);
@@ -230,13 +234,14 @@ test_prompt_confirm (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
ret = gcr_prompt_confirm_run (prompt, NULL, &error);
g_assert_no_error (error);
g_assert (ret == TRUE);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -260,6 +265,7 @@ test_async_confirm (Test *test,
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
g_clear_object (&result);
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
gcr_prompt_confirm_async (prompt, NULL, on_async_result, &result);
g_assert (result == NULL);
@@ -271,7 +277,7 @@ test_async_confirm (Test *test,
g_clear_object (&result);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -287,13 +293,14 @@ test_cancel_password (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
password = gcr_prompt_password_run (prompt, NULL, &error);
g_assert_no_error (error);
g_assert_cmpstr (password, ==, NULL);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -309,13 +316,14 @@ test_cancel_confirm (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
ret = gcr_prompt_confirm_run (prompt, NULL, &error);
g_assert_no_error (error);
g_assert (ret == FALSE);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -342,6 +350,7 @@ test_prompt_properties (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
g_object_set (prompt,
"title", "Other Title",
@@ -386,7 +395,7 @@ test_prompt_properties (Test *test,
g_assert_cmpint (gcr_prompt_get_password_strength (prompt), ==, 0);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -399,6 +408,7 @@ test_prompt_properties_unset (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
g_assert_cmpstr (gcr_prompt_get_title (prompt), ==, "");
g_assert_cmpstr (gcr_prompt_get_choice_label (prompt), ==, NULL);
@@ -413,7 +423,7 @@ test_prompt_properties_unset (Test *test,
g_assert_cmpint (gcr_prompt_get_password_strength (prompt), ==, 0);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
@@ -426,6 +436,7 @@ test_prompt_properties_reset (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
g_object_set (prompt,
"title", "Other Title",
@@ -466,7 +477,7 @@ test_prompt_properties_reset (Test *test,
g_assert_cmpint (gcr_prompt_get_password_strength (prompt), ==, 0);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -483,11 +494,13 @@ test_prompt_close (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 1, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
prompt2 = gcr_system_prompt_open_for_prompter (test->prompter_name, 1, NULL, &error);
g_assert_error (error, GCR_SYSTEM_PROMPT_ERROR, GCR_SYSTEM_PROMPT_IN_PROGRESS);
g_clear_error (&error);
g_assert (prompt2 == NULL);
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
ret = gcr_prompt_confirm_run (prompt, NULL, &error);
g_assert_no_error (error);
@@ -506,10 +519,9 @@ test_prompt_close (Test *test,
g_assert (GCR_IS_SYSTEM_PROMPT (prompt2));
g_object_unref (prompt);
- g_assert (!G_IS_OBJECT (prompt));
g_object_unref (prompt2);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -537,6 +549,7 @@ test_close_cancels (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 0, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
prompt_closed = FALSE;
g_signal_connect_after (prompt, "prompt-close", G_CALLBACK (on_prompt_close), &prompt_closed);
@@ -555,7 +568,7 @@ test_close_cancels (Test *test,
g_clear_object (&result);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -573,6 +586,7 @@ test_close_from_prompter (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 1, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
prompt_closed = FALSE;
g_signal_connect_after (prompt, "prompt-close", G_CALLBACK (on_prompt_close), &prompt_closed);
@@ -595,7 +609,7 @@ test_close_from_prompter (Test *test,
g_assert (password == NULL);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static void
@@ -613,6 +627,7 @@ test_after_close_dismisses (Test *test,
prompt = gcr_system_prompt_open_for_prompter (test->prompter_name, 1, NULL, &error);
g_assert_no_error (error);
g_assert (GCR_IS_SYSTEM_PROMPT (prompt));
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
prompt_closed = FALSE;
g_signal_connect_after (prompt, "prompt-close", G_CALLBACK (on_prompt_close), &prompt_closed);
@@ -638,7 +653,7 @@ test_after_close_dismisses (Test *test,
while (g_main_context_iteration (NULL, FALSE));
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
typedef struct {
diff --git a/ui/tests/frob-system-prompt.c b/ui/tests/frob-system-prompt.c
index b743adf..21f1829 100644
--- a/ui/tests/frob-system-prompt.c
+++ b/ui/tests/frob-system-prompt.c
@@ -50,6 +50,7 @@ on_prompt_clicked (GtkToolButton *button,
g_error_free (error);
return;
}
+ g_object_add_weak_pointer (G_OBJECT (prompt), (gpointer *)&prompt);
gcr_prompt_set_title (GCR_PROMPT (prompt), "This is the title");
gcr_prompt_set_message (GCR_PROMPT (prompt), "This is the message");
@@ -69,7 +70,7 @@ on_prompt_clicked (GtkToolButton *button,
g_print ("password: %s\n", password);
g_object_unref (prompt);
- egg_assert_not_object (prompt);
+ g_assert (prompt == NULL);
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]