static void test_query (TestInfo *test_info, gconstpointer context) { GError *error = NULL; gchar *data_filename; gchar *query_filename; gchar *results_filename; gchar *prefix, *data_prefix, *test_prefix; 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_db_journal_set_rotating (FALSE, G_MAXSIZE, NULL); /* initialization */ tracker_data_manager_init (TRACKER_DB_MANAGER_FORCE_REINDEX, NULL, NULL, FALSE, FALSE, 100, 100, NULL, NULL, NULL, NULL); /* load data set */ data_filename = g_strconcat (data_prefix, ".ttl", NULL); tracker_turtle_reader_load (data_filename, &error); g_assert_no_error (error); query_filename = g_strconcat (test_prefix, ".rq", NULL); results_filename = g_strconcat (test_prefix, ".out", NULL); g_free (data_prefix); g_free (test_prefix); query_helper (query_filename, results_filename); /* cleanup */ g_free (data_filename); g_free (query_filename); g_free (results_filename); tracker_data_manager_shutdown (); }
static void test_sparql_query (TestInfo *test_info, gconstpointer context) { TrackerDBCursor *cursor; GError *error = NULL; gchar *data_filename; gchar *query, *query_filename; gchar *results_filename; gchar *prefix, *data_prefix, *test_prefix; const gchar *test_schemas[2] = { NULL, 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); test_schemas[0] = data_prefix; tracker_db_journal_set_rotating (FALSE, G_MAXSIZE, NULL); tracker_data_manager_init (TRACKER_DB_MANAGER_FORCE_REINDEX, test_schemas, NULL, FALSE, FALSE, 100, 100, NULL, NULL, NULL, &error); g_assert_no_error (error); /* 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); if (g_file_test (data_filename, G_FILE_TEST_IS_REGULAR)) { tracker_turtle_reader_load (data_filename, &error); g_assert_no_error (error); } else { /* no .ttl available, assume .rq with SPARQL Update */ gchar *data; g_free (data_filename); data_filename = g_strconcat (data_prefix, ".rq", NULL); g_file_get_contents (data_filename, &data, NULL, &error); g_assert_no_error (error); tracker_data_update_sparql (data, &error); if (test_info->expect_update_error) { g_assert (error != NULL); g_clear_error (&error); } else { g_assert_no_error (error); } g_free (data); } query_filename = g_strconcat (test_prefix, ".rq", NULL); g_file_get_contents (query_filename, &query, NULL, &error); g_assert_no_error (error); results_filename = g_strconcat (test_prefix, ".out", NULL); /* perform actual query */ cursor = tracker_data_query_sparql_cursor (query, &error); check_result (cursor, test_info, results_filename, error); g_free (query_filename); g_free (query); query_filename = g_strconcat (test_prefix, ".extra.rq", NULL); if (g_file_get_contents (query_filename, &query, NULL, NULL)) { g_object_unref (cursor); cursor = tracker_data_query_sparql_cursor (query, &error); g_assert_no_error (error); g_free (results_filename); results_filename = g_strconcat (test_prefix, ".extra.out", NULL); check_result (cursor, test_info, results_filename, error); } g_free (data_prefix); g_free (test_prefix); if (cursor) { g_object_unref (cursor); } /* cleanup */ g_free (data_filename); g_free (query_filename); g_free (query); g_free (results_filename); tracker_data_manager_shutdown (); }