[evolution-data-server/openismus-work] Use async variants in test-client-view-operations
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/openismus-work] Use async variants in test-client-view-operations
- Date: Thu, 21 Feb 2013 13:45:48 +0000 (UTC)
commit 97a2d789d11231f7ac2cf4722133581c3309b2f2
Author: Tristan Van Berkom <tristanvb openismus com>
Date: Thu Feb 21 22:44:15 2013 +0900
Use async variants in test-client-view-operations
We have some breakage with sync variants in this branch, this
test still ensures concurrent access to the SQLite doesnt break.
.../libebook/client/test-client-view-operations.c | 52 +++++++++++--------
1 files changed, 30 insertions(+), 22 deletions(-)
---
diff --git a/tests/libebook/client/test-client-view-operations.c
b/tests/libebook/client/test-client-view-operations.c
index b713c83..e926b9e 100644
--- a/tests/libebook/client/test-client-view-operations.c
+++ b/tests/libebook/client/test-client-view-operations.c
@@ -79,19 +79,16 @@ complete (EBookClientView *view,
g_mutex_unlock (&data->complete_mutex);
}
-static gboolean
-start_view (ThreadData *data)
+static void
+view_ready (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
{
- EBookQuery *query;
- gchar *sexp;
+ ThreadData *data = (ThreadData *)user_data;
GError *error = NULL;
- query = e_book_query_any_field_contains ("");
- sexp = e_book_query_to_string (query);
-
- if (!e_book_client_get_view_sync (data->client, sexp,
- &(data->view), NULL, &error))
- g_error ("Error getting view: %s", error->message);
+ if (!e_book_client_get_view_finish (E_BOOK_CLIENT (source_object), res, &(data->view), &error))
+ g_error ("Getting view failed: %s", error->message);
g_signal_connect (data->view, "objects-added", G_CALLBACK (objects_added), data);
g_signal_connect (data->view, "objects-modified", G_CALLBACK (objects_modified), data);
@@ -106,23 +103,21 @@ start_view (ThreadData *data)
if (error)
g_error ("start view: %s", error->message);
- e_book_query_unref (query);
- g_free (sexp);
-
- return FALSE;
}
static void
start_thread_test (ThreadData *data)
{
- GMainContext *context;
- GSource *source;
+ EBookQuery *query;
+ gchar *sexp;
- context = g_main_loop_get_context (data->loop);
- source = g_idle_source_new ();
+ query = e_book_query_any_field_contains ("");
+ sexp = e_book_query_to_string (query);
+
+ e_book_client_get_view (data->client, sexp, NULL, view_ready, data);
- g_source_set_callback (source, (GSourceFunc)start_view, data, NULL);
- g_source_attach (source, context);
+ e_book_query_unref (query);
+ g_free (sexp);
}
static void
@@ -137,6 +132,19 @@ finish_thread_test (ThreadData *data)
g_slice_free (ThreadData, data);
}
+static void
+book_client_opened (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
+{
+ GError *error = NULL;
+
+ if (!e_client_open_finish (E_CLIENT (source_object), res, &error))
+ g_error ("Failed to open client: %s", error->message);
+
+ start_thread_test ((ThreadData *)user_data);
+}
+
static gpointer
test_view_thread (ThreadData *data)
{
@@ -158,12 +166,12 @@ test_view_thread (ThreadData *data)
if (!source)
g_error ("Unable to fetch source uid '%s' from the registry", data->book_uid);
- data->client = (EBookClient *)e_book_client_connect_direct_sync (registry, source, NULL, &error);
+ data->client = (EBookClient *)e_book_client_new_direct (registry, source, &error);
if (!data->client)
g_error ("Unable to create EBookClient for uid '%s': %s", data->book_uid, error->message);
- start_thread_test (data);
+ e_client_open (E_CLIENT (data->client), FALSE, NULL, book_client_opened, data);
g_main_loop_run (data->loop);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]