[tracker/binary-log-2: 10/44] Update test to new journal API
- From: Jürg Billeter <juergbi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/binary-log-2: 10/44] Update test to new journal API
- Date: Mon, 11 Jan 2010 17:53:12 +0000 (UTC)
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]