From 4d206f76aae4a543057124c98793d0e815cdb6d7 Mon Sep 17 00:00:00 2001 From: Martyn Russell Date: Fri, 17 Jan 2014 18:17:05 +0000 Subject: 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. --- tests/libtracker-sparql/tracker-test.c | 63 +++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 13 deletions(-) (limited to 'tests/libtracker-sparql') 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 +#include + #include 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); -- cgit v1.2.1