summaryrefslogtreecommitdiff
path: root/tests/libtracker-sparql
diff options
context:
space:
mode:
authorMartyn Russell <martyn@lanedo.com>2014-01-17 18:17:05 +0000
committerMartyn Russell <martyn@lanedo.com>2014-01-17 18:53:57 +0000
commit4d206f76aae4a543057124c98793d0e815cdb6d7 (patch)
tree2fb8e7f175a26ba7cdc026473e08050e7de88fe9 /tests/libtracker-sparql
parent72dc5e49d412e8db153366777c2f61016d4b67d3 (diff)
downloadtracker-4d206f76aae4a543057124c98793d0e815cdb6d7.tar.gz
tests: Removed all cases of g_test_trap_fork() which has been deprecated.
Now we're using g_test_trap_subprocess() instead and that requires GLib 2.38. Tracker now depends on GLib 2.38.
Diffstat (limited to 'tests/libtracker-sparql')
-rw-r--r--tests/libtracker-sparql/tracker-test.c63
1 files changed, 50 insertions, 13 deletions
diff --git a/tests/libtracker-sparql/tracker-test.c b/tests/libtracker-sparql/tracker-test.c
index ee0dbad5e..5784fb4c7 100644
--- a/tests/libtracker-sparql/tracker-test.c
+++ b/tests/libtracker-sparql/tracker-test.c
@@ -21,6 +21,8 @@
#include <locale.h>
+#include <glib-object.h>
+
#include <libtracker-sparql/tracker-sparql.h>
typedef struct {
@@ -295,31 +297,64 @@ test_tracker_sparql_nb237150_cb (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
{
+ TrackerSparqlConnection *connection;
+ GError *error = NULL;
+ static gboolean had_1 = FALSE;
+ static gboolean had_2 = FALSE;
+
+ connection = tracker_sparql_connection_get_finish (result, &error);
+ g_assert_no_error (error);
+ g_assert (connection != NULL);
+
/* Not actually worried about this being called */
g_print ("Called back for #%d\n", GPOINTER_TO_INT(user_data));
+
+ if (GPOINTER_TO_INT(user_data) == 1)
+ had_1 = TRUE;
+ if (GPOINTER_TO_INT(user_data) == 2)
+ had_2 = TRUE;
+
+ if (had_1 && had_2) {
+ g_print ("Called back ALL\n");
+ g_main_loop_quit (main_loop);
+ }
}
static void
-test_tracker_sparql_nb237150 (void)
+test_tracker_sparql_nb237150_subprocess (void)
{
- /* Test NB#237150 - Second tracker_sparql_connection_get_async never returns */
- if (g_test_trap_fork (G_USEC_PER_SEC * 2, G_TEST_TRAP_SILENCE_STDOUT)) {
- g_print ("\n");
- g_print ("Calling #1 - tracker_sparql_connection_get_async()\n");
- tracker_sparql_connection_get_async (NULL, test_tracker_sparql_nb237150_cb, GINT_TO_POINTER(1));
+ g_print ("\n");
+ g_print ("Calling #1 - tracker_sparql_connection_get_async()\n");
+ tracker_sparql_connection_get_async (NULL, test_tracker_sparql_nb237150_cb, GINT_TO_POINTER(1));
- g_print ("Calling #2 - tracker_sparql_connection_get_async()\n");
- tracker_sparql_connection_get_async (NULL, test_tracker_sparql_nb237150_cb, GINT_TO_POINTER(2));
+ g_print ("Calling #2 - tracker_sparql_connection_get_async()\n");
+ tracker_sparql_connection_get_async (NULL, test_tracker_sparql_nb237150_cb, GINT_TO_POINTER(2));
- g_print ("Calling both finished\n");
+ g_print ("Calling both finished\n");
+}
- exit (0); /* successful test run */
- }
+static void
+test_tracker_sparql_nb237150 (void)
+{
+ /* Test NB#237150 - Second tracker_sparql_connection_get_async
+ * never returns
+ */
+ g_test_trap_subprocess ("/libtracker-sparql/tracker/nb237150/subprocess",
+ G_USEC_PER_SEC * 2,
+ G_TEST_SUBPROCESS_INHERIT_STDOUT);
g_test_trap_assert_passed ();
+
+ /* Check we called the functions in the test */
g_test_trap_assert_stdout ("*Calling #1*");
g_test_trap_assert_stdout ("*Calling #2*");
g_test_trap_assert_stdout ("*Calling both finished*");
+
+ /* Check the callbacks from the functions we called were
+ * called in the test */
+ g_test_trap_assert_stdout ("*Called back for #1*");
+ g_test_trap_assert_stdout ("*Called back for #2*");
+ g_test_trap_assert_stdout ("*Called back ALL*");
}
static void
@@ -371,9 +406,11 @@ main (gint argc, gchar **argv)
/* NOTE: this first test must come BEFORE any others because
* connections are cached by libtracker-sparql.
*/
- g_test_add_func ("/libtracker-sparql/tracker/test_tracker_sparql_nb237150",
+ g_test_add_func ("/libtracker-sparql/tracker/nb237150",
test_tracker_sparql_nb237150);
- g_test_add_func ("/libtracker-sparql/tracker/tracker_sparql_escape_string",
+ g_test_add_func ("/libtracker-sparql/tracker/nb237150/subprocess",
+ test_tracker_sparql_nb237150_subprocess);
+ g_test_add_func ("/libtracker-sparql/tracker/tracker_sparql_escape_string",
test_tracker_sparql_escape_string);
g_test_add_func ("/libtracker-sparql/tracker/tracker_sparql_escape_uri_vprintf",
test_tracker_sparql_escape_uri_vprintf);