[tracker/binary-log-2: 10/44] Update test to new journal API



commit 87843350fc289a925d49081ec12b9c3d5f52d9d5
Author: Martyn Russell <martyn lanedo com>
Date:   Mon Jan 4 15:11:11 2010 +0000

    Update test to new journal API

 tests/libtracker-db/Makefile.am          |    2 +
 tests/libtracker-db/tracker-db-journal.c |  175 ++++++++++++++++++++++++------
 2 files changed, 143 insertions(+), 34 deletions(-)
---
diff --git a/tests/libtracker-db/Makefile.am b/tests/libtracker-db/Makefile.am
index 4a871d8..022453a 100644
--- a/tests/libtracker-db/Makefile.am
+++ b/tests/libtracker-db/Makefile.am
@@ -17,6 +17,8 @@ noinst_PROGRAMS = $(TEST_PROGS)
 #
 
 INCLUDES = 								\
+	-DTOP_SRCDIR=\"$(top_srcdir)\"					\
+	-DTOP_BUILDDIR=\"$(top_builddir)\"				\
 	-DG_LOG_DOMAIN=\"Tracker\"					\
 	-DTRACKER_COMPILATION						\
 	-I$(top_srcdir)/src						\
diff --git a/tests/libtracker-db/tracker-db-journal.c b/tests/libtracker-db/tracker-db-journal.c
index 56a51a2..40a7649 100644
--- a/tests/libtracker-db/tracker-db-journal.c
+++ b/tests/libtracker-db/tracker-db-journal.c
@@ -17,44 +17,147 @@
  * Boston, MA  02110-1301, USA.
  */
 
+#include <glib/gstdio.h>
+
 #include <libtracker-common/tracker-crc32.h>
 
 #include <libtracker-db/tracker-db-journal.h>
 
 static void
-test_all (void)
+test_init_and_shutdown (void)
+{
+	gboolean result;
+
+	/* check double init/shutdown */
+	result = tracker_db_journal_init (NULL);
+	g_assert (result == TRUE);
+
+	result = tracker_db_journal_shutdown ();
+	g_assert (result == TRUE);
+
+	result = tracker_db_journal_init (NULL);
+	g_assert (result == TRUE);
+
+	result = tracker_db_journal_shutdown ();
+	g_assert (result == TRUE);
+}
+
+static void
+test_write_functions (void)
+{
+	gchar *path;
+	const gchar *filename;
+	gsize initial_size, actual_size;
+	gboolean result;
+
+	path = g_build_filename (TOP_SRCDIR, "tests", "libtracker-db", "tracker-store.journal", NULL);
+	g_unlink (path);
+
+	tracker_db_journal_init (path);
+
+        filename = tracker_db_journal_get_filename ();
+	g_assert (filename != NULL);
+	g_assert_cmpstr (filename, ==, path);
+
+	/* Size is 8 due to header */
+	actual_size = tracker_db_journal_get_size ();
+	g_assert_cmpint (actual_size, ==, 8);
+
+	/* Check with rollback, nothing is added */
+	initial_size = tracker_db_journal_get_size ();
+	result = tracker_db_journal_start_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (10, "http://resource";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (11, "http://predicate";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_delete_statement (10, 11, "test");
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_rollback_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+	actual_size = tracker_db_journal_get_size ();
+	g_assert_cmpint (initial_size, ==, actual_size);
+
+	/* Check with commit, somethign is added */
+	result = tracker_db_journal_start_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (12, "http://resource";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (13, "http://predicate";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (14, "http://resource";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_delete_statement_id (12, 13, 14);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_commit_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+	actual_size = tracker_db_journal_get_size ();
+	g_assert_cmpint (initial_size, !=, actual_size);
+
+	/* Test insert statement */
+	result = tracker_db_journal_start_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (15, "http://resource";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (16, "http://predicate";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_insert_statement (15, 16, "test");
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_commit_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+
+	/* Test insert id */
+	result = tracker_db_journal_start_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (17, "http://resource";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (18, "http://predicate";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_resource (19, "http://resource";);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_append_insert_statement_id (17, 18, 19);
+	g_assert_cmpint (result, ==, TRUE);
+	result = tracker_db_journal_commit_transaction ();
+	g_assert_cmpint (result, ==, TRUE);
+
+	/* Test fsync */
+	result = tracker_db_journal_fsync ();
+	g_assert_cmpint (result, ==, TRUE);
+
+	tracker_db_journal_shutdown ();
+
+	g_free (path);
+}
+
+static void
+test_read_functions (void)
 {
-	tracker_db_journal_open ("/tmp/test");
-
-	tracker_db_journal_start_transaction ();
-	tracker_db_journal_append_resource (10, "http://resource";);
-	tracker_db_journal_append_resource (11, "http://predicate";);
-	tracker_db_journal_append_delete_statement (10, 11, "test");
-	tracker_db_journal_commit_transaction ();
-
-	tracker_db_journal_start_transaction ();
-	tracker_db_journal_append_resource (12, "http://resource";);
-	tracker_db_journal_append_resource (13, "http://predicate";);
-	tracker_db_journal_append_resource (14, "http://resource";);
-	tracker_db_journal_append_delete_statement_id (12, 13, 14);
-	tracker_db_journal_commit_transaction ();
-
-
-	tracker_db_journal_start_transaction ();
-	tracker_db_journal_append_resource (15, "http://resource";);
-	tracker_db_journal_append_resource (16, "http://predicate";);
-	tracker_db_journal_append_insert_statement (15, 16, "test");
-	tracker_db_journal_commit_transaction ();
-
-	tracker_db_journal_start_transaction ();
-	tracker_db_journal_append_resource (17, "http://resource";);
-	tracker_db_journal_append_resource (18, "http://predicate";);
-	tracker_db_journal_append_resource (19, "http://resource";);
-	tracker_db_journal_append_insert_statement_id (17, 18, 19);
-	tracker_db_journal_commit_transaction ();
-
-	tracker_db_journal_fsync ();
-	tracker_db_journal_close ();
+	GError *error = NULL;
+	gchar *path;
+	gboolean result;
+	TrackerDBJournalEntryType type;
+
+	path = g_build_filename (TOP_SRCDIR, "tests", "libtracker-db", "tracker-store.journal", NULL);
+
+	/* NOTE: we don't unlink here so we can use the data from the write tests */
+
+	/* Create an iterator */
+	result = tracker_db_journal_reader_init (path);
+	g_assert_cmpint (result, ==, TRUE);
+
+	type = tracker_db_journal_reader_get_type ();
+	g_assert_cmpint (type, ==, TRACKER_DB_JOURNAL_START);
+
+	result = tracker_db_journal_reader_next (&error);
+	g_assert_no_error (error);
+	g_assert_cmpint (result, ==, TRUE);
+
+	/* FIXME: unfinished */
+
+	result = tracker_db_journal_reader_shutdown ();
+	g_assert_cmpint (result, ==, TRUE);
+
+	g_free (path);
 }
 
 int
@@ -66,8 +169,12 @@ main (int argc, char **argv)
 	g_thread_init (NULL);
 	g_test_init (&argc, &argv, NULL);
 
-	g_test_add_func ("/libtracker-db/tracker-db-journal/open-append-commit-close",
-	                 test_all);
+	g_test_add_func ("/libtracker-db/tracker-db-journal/init-and-shutdown",
+	                 test_init_and_shutdown);
+	g_test_add_func ("/libtracker-db/tracker-db-journal/write-functions",
+	                 test_write_functions);
+	g_test_add_func ("/libtracker-db/tracker-db-journal/read-functions",
+	                 test_read_functions);
 
 	result = g_test_run ();
 



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