[tracker/libraries: 2/3] libtracker-data: Simplify tests now that FTS is not loaded at runtime



commit e9eb7557b8335e1856277b878e6b4c51cc2dd4d7
Author: Jürg Billeter <j bitron ch>
Date:   Fri Aug 21 17:54:06 2009 +0200

    libtracker-data: Simplify tests now that FTS is not loaded at runtime

 tests/libtracker-data/tracker-ontology-test.c |  215 +++++++++++------------
 tests/libtracker-data/tracker-sparql-test.c   |  237 ++++++++++++-------------
 2 files changed, 213 insertions(+), 239 deletions(-)
---
diff --git a/tests/libtracker-data/tracker-ontology-test.c b/tests/libtracker-data/tracker-ontology-test.c
index b0de0e5..def14d9 100644
--- a/tests/libtracker-data/tracker-ontology-test.c
+++ b/tests/libtracker-data/tracker-ontology-test.c
@@ -74,141 +74,128 @@ const TestInfo nmo_tests[] = {
 static void
 test_query (gconstpointer test_data)
 {
+	TrackerDBResultSet *result_set;
 	const TestInfo *test_info;
-
+	GError *error;
+	GString *test_results;
+	gchar *data_filename;
+	gchar *query, *query_filename;
+	gchar *results, *results_filename;
+	gchar *prefix, *data_prefix, *test_prefix;
+
+	error = NULL;
 	test_info = test_data;
 
-	/* fork as tracker-fts can only be initialized once per process (GType in loadable module) */
-	if (g_test_trap_fork (0, 0)) {
-		TrackerDBResultSet *result_set;
-		GError *error;
-		GString *test_results;
-		gchar *data_filename;
-		gchar *query, *query_filename;
-		gchar *results, *results_filename;
-		gchar *prefix, *data_prefix, *test_prefix;
-		gint exitcode;
-
-		exitcode = 0;
-		error = NULL;
-
-		prefix = g_build_path (G_DIR_SEPARATOR_S, TOP_SRCDIR, "tests", "libtracker-data", NULL);
-		data_prefix = g_build_filename (prefix, test_info->data, NULL);
-		test_prefix = g_build_filename (prefix, test_info->test_name, NULL);
-		g_free (prefix);
-
-		/* initialization */
-		tracker_data_manager_init (TRACKER_DB_MANAGER_FORCE_REINDEX,
-			                   NULL, 
-					   NULL);
-
-		/* load data set */
-		data_filename = g_strconcat (data_prefix, ".ttl", NULL);
-		tracker_turtle_reader_load (data_filename, &error);
-		g_assert (error == NULL);
+	prefix = g_build_path (G_DIR_SEPARATOR_S, TOP_SRCDIR, "tests", "libtracker-data", NULL);
+	data_prefix = g_build_filename (prefix, test_info->data, NULL);
+	test_prefix = g_build_filename (prefix, test_info->test_name, NULL);
+	g_free (prefix);
 
-		query_filename = g_strconcat (test_prefix, ".rq", NULL);
-		g_file_get_contents (query_filename, &query, NULL, &error);
-		g_assert (error == NULL);
+	/* initialization */
+	tracker_data_manager_init (TRACKER_DB_MANAGER_FORCE_REINDEX,
+		                   NULL, 
+				   NULL);
 
-		results_filename = g_strconcat (test_prefix, ".out", NULL);
-		g_file_get_contents (results_filename, &results, NULL, &error);
-		g_assert (error == NULL);
+	/* load data set */
+	data_filename = g_strconcat (data_prefix, ".ttl", NULL);
+	tracker_turtle_reader_load (data_filename, &error);
+	g_assert (error == NULL);
 
-		g_free (data_prefix);
-		g_free (test_prefix);
+	query_filename = g_strconcat (test_prefix, ".rq", NULL);
+	g_file_get_contents (query_filename, &query, NULL, &error);
+	g_assert (error == NULL);
 
-		/* perform actual query */
+	results_filename = g_strconcat (test_prefix, ".out", NULL);
+	g_file_get_contents (results_filename, &results, NULL, &error);
+	g_assert (error == NULL);
 
-		result_set = tracker_data_query_sparql (query, &error);
-		g_assert (error == NULL);
+	g_free (data_prefix);
+	g_free (test_prefix);
 
-		/* compare results with reference output */
-
-		test_results = g_string_new ("");
-
-		if (result_set) {
-			gboolean valid = TRUE;
-			guint col_count;
-			gint col;
-
-			col_count = tracker_db_result_set_get_n_columns (result_set);
-
-			while (valid) {
-				for (col = 0; col < col_count; col++) {
-					GValue value = { 0 };
-
-					_tracker_db_result_set_get_value (result_set, col, &value);
-
-					switch (G_VALUE_TYPE (&value)) {
-					case G_TYPE_INT:
-						g_string_append_printf (test_results, "\"%d\"", g_value_get_int (&value));
-						break;
-					case G_TYPE_DOUBLE:
-						g_string_append_printf (test_results, "\"%f\"", g_value_get_double (&value));
-						break;
-					case G_TYPE_STRING:
-						g_string_append_printf (test_results, "\"%s\"", g_value_get_string (&value));
-						break;
-					default:
-						/* unbound variable */
-						break;
-					}
-
-					if (col < col_count - 1) {
-						g_string_append (test_results, "\t");
-					}
-				}
+	/* perform actual query */
+
+	result_set = tracker_data_query_sparql (query, &error);
+	g_assert (error == NULL);
+
+	/* compare results with reference output */
+
+	test_results = g_string_new ("");
+
+	if (result_set) {
+		gboolean valid = TRUE;
+		guint col_count;
+		gint col;
 
-				g_string_append (test_results, "\n");
+		col_count = tracker_db_result_set_get_n_columns (result_set);
 
-				valid = tracker_db_result_set_iter_next (result_set);
+		while (valid) {
+			for (col = 0; col < col_count; col++) {
+				GValue value = { 0 };
+
+				_tracker_db_result_set_get_value (result_set, col, &value);
+
+				switch (G_VALUE_TYPE (&value)) {
+				case G_TYPE_INT:
+					g_string_append_printf (test_results, "\"%d\"", g_value_get_int (&value));
+					break;
+				case G_TYPE_DOUBLE:
+					g_string_append_printf (test_results, "\"%f\"", g_value_get_double (&value));
+					break;
+				case G_TYPE_STRING:
+					g_string_append_printf (test_results, "\"%s\"", g_value_get_string (&value));
+					break;
+				default:
+					/* unbound variable */
+					break;
+				}
+
+				if (col < col_count - 1) {
+					g_string_append (test_results, "\t");
+				}
 			}
 
-			g_object_unref (result_set);
-		}
+			g_string_append (test_results, "\n");
 
-		if (strcmp (results, test_results->str)) {
-			/* print result difference */
-			gchar *quoted_results;
-			gchar *command_line;
-			gchar *quoted_command_line;
-			gchar *shell;
-			gchar *diff;
-
-			quoted_results = g_shell_quote (test_results->str);
-			command_line = g_strdup_printf ("echo -n %s | diff -u %s -", quoted_results, results_filename);
-			quoted_command_line = g_shell_quote (command_line);
-			shell = g_strdup_printf ("sh -c %s", quoted_command_line);
-			g_spawn_command_line_sync (shell, &diff, NULL, NULL, &error);
-			g_assert (error == NULL);
-
-			g_error ("%s", diff);
-
-			g_free (quoted_results);
-			g_free (command_line);
-			g_free (quoted_command_line);
-			g_free (shell);
-			g_free (diff);
-
-			exitcode = 1;
+			valid = tracker_db_result_set_iter_next (result_set);
 		}
 
-		/* cleanup */
+		g_object_unref (result_set);
+	}
 
-		g_free (data_filename);
-		g_free (query_filename);
-		g_free (query);
-		g_free (results_filename);
-		g_free (results);
-		g_string_free (test_results, TRUE);
+	if (strcmp (results, test_results->str)) {
+		/* print result difference */
+		gchar *quoted_results;
+		gchar *command_line;
+		gchar *quoted_command_line;
+		gchar *shell;
+		gchar *diff;
+
+		quoted_results = g_shell_quote (test_results->str);
+		command_line = g_strdup_printf ("echo -n %s | diff -u %s -", quoted_results, results_filename);
+		quoted_command_line = g_shell_quote (command_line);
+		shell = g_strdup_printf ("sh -c %s", quoted_command_line);
+		g_spawn_command_line_sync (shell, &diff, NULL, NULL, &error);
+		g_assert (error == NULL);
 
-		tracker_data_manager_shutdown ();
+		g_error ("%s", diff);
 
-		exit (exitcode);
+		g_free (quoted_results);
+		g_free (command_line);
+		g_free (quoted_command_line);
+		g_free (shell);
+		g_free (diff);
 	}
 
-	g_test_trap_assert_passed ();
+	/* cleanup */
+
+	g_free (data_filename);
+	g_free (query_filename);
+	g_free (query);
+	g_free (results_filename);
+	g_free (results);
+	g_string_free (test_results, TRUE);
+
+	tracker_data_manager_shutdown ();
 }
 
 int
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 5309579..28718f0 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -86,153 +86,140 @@ strstr_i (const char *a, const char *b)
 static void
 test_sparql_query (gconstpointer test_data)
 {
+	int (*comparer) (const char *a, const char *b);
+	TrackerDBResultSet *result_set;
 	const TestInfo *test_info;
-
+	GError *error;
+	GString *test_results;
+	gchar *data_filename;
+	gchar *query, *query_filename;
+	gchar *results, *results_filename;
+	gchar *prefix, *data_prefix, *test_prefix;
+
+	error = NULL;
 	test_info = test_data;
 
-	/* fork as tracker-fts can only be initialized once per process (GType in loadable module) */
-	if (g_test_trap_fork (0, 0)) {
-		int (*comparer) (const char *a, const char *b);
-		TrackerDBResultSet *result_set;
-		GError *error;
-		GString *test_results;
-		gchar *data_filename;
-		gchar *query, *query_filename;
-		gchar *results, *results_filename;
-		gchar *prefix, *data_prefix, *test_prefix;
-		gint exitcode;
-
-		exitcode = 0;
-		error = NULL;
-
-		/* initialization */
-		prefix = g_build_path (G_DIR_SEPARATOR_S, TOP_SRCDIR, "tests", "libtracker-data", NULL);
-		data_prefix = g_build_filename (prefix, test_info->data, NULL);
-		test_prefix = g_build_filename (prefix, test_info->test_name, NULL);
-		g_free (prefix);
-
-		tracker_data_manager_init (TRACKER_DB_MANAGER_FORCE_REINDEX,
-			                   data_prefix, 
-					   NULL);
-
-		/* data_path = g_build_path (G_DIR_SEPARATOR_S, TOP_SRCDIR, "tests", "libtracker-data", NULL); */
-
-		/* load data set */
-		data_filename = g_strconcat (data_prefix, ".ttl", NULL);
-		tracker_turtle_reader_load (data_filename, &error);
-		g_assert (error == NULL);
+	/* initialization */
+	prefix = g_build_path (G_DIR_SEPARATOR_S, TOP_SRCDIR, "tests", "libtracker-data", NULL);
+	data_prefix = g_build_filename (prefix, test_info->data, NULL);
+	test_prefix = g_build_filename (prefix, test_info->test_name, NULL);
+	g_free (prefix);
 
-		query_filename = g_strconcat (test_prefix, ".rq", NULL);
-		g_file_get_contents (query_filename, &query, NULL, &error);
-		g_assert (error == NULL);
+	tracker_data_manager_init (TRACKER_DB_MANAGER_FORCE_REINDEX,
+		                   data_prefix, 
+				   NULL);
+
+	/* data_path = g_build_path (G_DIR_SEPARATOR_S, TOP_SRCDIR, "tests", "libtracker-data", NULL); */
+
+	/* load data set */
+	data_filename = g_strconcat (data_prefix, ".ttl", NULL);
+	tracker_turtle_reader_load (data_filename, &error);
+	g_assert (error == NULL);
+
+	query_filename = g_strconcat (test_prefix, ".rq", NULL);
+	g_file_get_contents (query_filename, &query, NULL, &error);
+	g_assert (error == NULL);
 
-		results_filename = g_strconcat (test_prefix, ".out", NULL);
-		g_file_get_contents (results_filename, &results, NULL, &error);
+	results_filename = g_strconcat (test_prefix, ".out", NULL);
+	g_file_get_contents (results_filename, &results, NULL, &error);
+	g_assert (error == NULL);
+
+	g_free (data_prefix);
+	g_free (test_prefix);
+
+	/* perform actual query */
+
+	result_set = tracker_data_query_sparql (query, &error);
+	if (test_info->expect_error) {
+		comparer = strstr_i;
+		g_assert (error != NULL);
+	} else {
+		comparer = strcmp;
 		g_assert (error == NULL);
+	}
 
-		g_free (data_prefix);
-		g_free (test_prefix);
+	/* compare results with reference output */
 
-		/* perform actual query */
+	test_results = g_string_new ("");
 
-		result_set = tracker_data_query_sparql (query, &error);
-		if (test_info->expect_error) {
-			comparer = strstr_i;
-			g_assert (error != NULL);
-		} else {
-			comparer = strcmp;
-			g_assert (error == NULL);
-		}
+	if (result_set) {
+		gboolean valid = TRUE;
+		guint col_count;
+		gint col;
 
-		/* compare results with reference output */
-
-		test_results = g_string_new ("");
-
-		if (result_set) {
-			gboolean valid = TRUE;
-			guint col_count;
-			gint col;
-
-			col_count = tracker_db_result_set_get_n_columns (result_set);
-
-			while (valid) {
-				for (col = 0; col < col_count; col++) {
-					GValue value = { 0 };
-
-					_tracker_db_result_set_get_value (result_set, col, &value);
-
-					switch (G_VALUE_TYPE (&value)) {
-					case G_TYPE_INT:
-						g_string_append_printf (test_results, "\"%d\"", g_value_get_int (&value));
-						break;
-					case G_TYPE_DOUBLE:
-						g_string_append_printf (test_results, "\"%f\"", g_value_get_double (&value));
-						break;
-					case G_TYPE_STRING:
-						g_string_append_printf (test_results, "\"%s\"", g_value_get_string (&value));
-						break;
-					default:
-						/* unbound variable */
-						break;
-					}
-
-					if (col < col_count - 1) {
-						g_string_append (test_results, "\t");
-					}
-				}
+		col_count = tracker_db_result_set_get_n_columns (result_set);
+
+		while (valid) {
+			for (col = 0; col < col_count; col++) {
+				GValue value = { 0 };
 
-				g_string_append (test_results, "\n");
+				_tracker_db_result_set_get_value (result_set, col, &value);
 
-				valid = tracker_db_result_set_iter_next (result_set);
+				switch (G_VALUE_TYPE (&value)) {
+				case G_TYPE_INT:
+					g_string_append_printf (test_results, "\"%d\"", g_value_get_int (&value));
+					break;
+				case G_TYPE_DOUBLE:
+					g_string_append_printf (test_results, "\"%f\"", g_value_get_double (&value));
+					break;
+				case G_TYPE_STRING:
+					g_string_append_printf (test_results, "\"%s\"", g_value_get_string (&value));
+					break;
+				default:
+					/* unbound variable */
+					break;
+				}
+
+				if (col < col_count - 1) {
+					g_string_append (test_results, "\t");
+				}
 			}
 
-			g_object_unref (result_set);
-		} else if (test_info->expect_error) {
-			g_string_append (test_results, error->message);
-			g_clear_error (&error);
-		}
+			g_string_append (test_results, "\n");
 
-		if (comparer (results, test_results->str)) {
-			/* print result difference */
-			gchar *quoted_results;
-			gchar *command_line;
-			gchar *quoted_command_line;
-			gchar *shell;
-			gchar *diff;
-
-			quoted_results = g_shell_quote (test_results->str);
-			command_line = g_strdup_printf ("echo -n %s | diff -u %s -", quoted_results, results_filename);
-			quoted_command_line = g_shell_quote (command_line);
-			shell = g_strdup_printf ("sh -c %s", quoted_command_line);
-			g_spawn_command_line_sync (shell, &diff, NULL, NULL, &error);
-			g_assert (error == NULL);
-
-			g_error ("%s", diff);
-
-			g_free (quoted_results);
-			g_free (command_line);
-			g_free (quoted_command_line);
-			g_free (shell);
-			g_free (diff);
-
-			exitcode = 1;
+			valid = tracker_db_result_set_iter_next (result_set);
 		}
 
-		/* cleanup */
+		g_object_unref (result_set);
+	} else if (test_info->expect_error) {
+		g_string_append (test_results, error->message);
+		g_clear_error (&error);
+	}
 
-		g_free (data_filename);
-		g_free (query_filename);
-		g_free (query);
-		g_free (results_filename);
-		g_free (results);
-		g_string_free (test_results, TRUE);
+	if (comparer (results, test_results->str)) {
+		/* print result difference */
+		gchar *quoted_results;
+		gchar *command_line;
+		gchar *quoted_command_line;
+		gchar *shell;
+		gchar *diff;
+
+		quoted_results = g_shell_quote (test_results->str);
+		command_line = g_strdup_printf ("echo -n %s | diff -u %s -", quoted_results, results_filename);
+		quoted_command_line = g_shell_quote (command_line);
+		shell = g_strdup_printf ("sh -c %s", quoted_command_line);
+		g_spawn_command_line_sync (shell, &diff, NULL, NULL, &error);
+		g_assert (error == NULL);
 
-		tracker_data_manager_shutdown ();
+		g_error ("%s", diff);
 
-		exit (exitcode);
+		g_free (quoted_results);
+		g_free (command_line);
+		g_free (quoted_command_line);
+		g_free (shell);
+		g_free (diff);
 	}
 
-	g_test_trap_assert_passed ();
+	/* cleanup */
+
+	g_free (data_filename);
+	g_free (query_filename);
+	g_free (query);
+	g_free (results_filename);
+	g_free (results);
+	g_string_free (test_results, TRUE);
+
+	tracker_data_manager_shutdown ();
 }
 
 int



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]