tracker r1876 - in branches/indexer-split: . src/libtracker-db tests/libtracker-db
- From: ifrade svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r1876 - in branches/indexer-split: . src/libtracker-db tests/libtracker-db
- Date: Tue, 15 Jul 2008 14:52:29 +0000 (UTC)
Author: ifrade
Date: Tue Jul 15 14:52:29 2008
New Revision: 1876
URL: http://svn.gnome.org/viewvc/tracker?rev=1876&view=rev
Log:
Fixed tracker_dbus_result_set_to_strv
Added:
branches/indexer-split/tests/libtracker-db/tracker-db-dbus-test.c
Modified:
branches/indexer-split/ChangeLog
branches/indexer-split/src/libtracker-db/tracker-db-dbus.c
branches/indexer-split/src/libtracker-db/tracker-db-interface.c
branches/indexer-split/tests/libtracker-db/Makefile.am
Modified: branches/indexer-split/src/libtracker-db/tracker-db-dbus.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-dbus.c (original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-dbus.c Tue Jul 15 14:52:29 2008
@@ -30,11 +30,11 @@
{
gchar **strv = NULL;
gint rows = 0;
+ gint i = 0;
if (result_set) {
gchar *str;
gboolean valid = TRUE;
- gint i = 0;
rows = tracker_db_result_set_get_n_rows (result_set);
strv = g_new (gchar*, rows + 1);
@@ -42,6 +42,12 @@
while (valid) {
tracker_db_result_set_get (result_set, column, &str, -1);
+
+ if (!str) {
+ valid = tracker_db_result_set_iter_next (result_set);
+ continue;
+ }
+
if (!g_utf8_validate (str, -1, NULL)) {
g_warning ("Could not add string:'%s' to GStrv, invalid UTF-8", str);
@@ -57,7 +63,7 @@
}
if (count) {
- *count = rows;
+ *count = i;
}
return strv;
Modified: branches/indexer-split/src/libtracker-db/tracker-db-interface.c
==============================================================================
--- branches/indexer-split/src/libtracker-db/tracker-db-interface.c (original)
+++ branches/indexer-split/src/libtracker-db/tracker-db-interface.c Tue Jul 15 14:52:29 2008
@@ -543,6 +543,8 @@
g_return_if_fail (TRACKER_IS_DB_RESULT_SET (result_set));
priv = TRACKER_DB_RESULT_SET_GET_PRIVATE (result_set);
+ g_return_if_fail (priv->array != NULL);
+
row = g_ptr_array_index (priv->array, priv->current_row);
va_start (args, result_set);
Modified: branches/indexer-split/tests/libtracker-db/Makefile.am
==============================================================================
--- branches/indexer-split/tests/libtracker-db/Makefile.am (original)
+++ branches/indexer-split/tests/libtracker-db/Makefile.am Tue Jul 15 14:52:29 2008
@@ -5,6 +5,7 @@
TEST_PROGS += tracker-db-manager-unattach \
tracker-db-manager-attach \
tracker-db-manager-custom \
+ tracker-db-dbus \
union-performance
INCLUDES = \
@@ -84,3 +85,16 @@
$(GTHREAD_LIBS) \
$(GLIB2_LIBS) \
-lz
+
+tracker_db_dbus_SOURCES = \
+ tracker-db-dbus-test.c
+
+tracker_db_dbus_LDADD = \
+ $(top_builddir)/src/libtracker-db/libtracker-db.la \
+ $(top_builddir)/src/libtracker-common/libtracker-common.la \
+ $(top_builddir)/tests/common/libtracker-testcommon.la \
+ $(SQLITE3_LIBS) \
+ $(GMODULE_LIBS) \
+ $(GTHREAD_LIBS) \
+ $(GLIB2_LIBS) \
+ -lz
Added: branches/indexer-split/tests/libtracker-db/tracker-db-dbus-test.c
==============================================================================
--- (empty file)
+++ branches/indexer-split/tests/libtracker-db/tracker-db-dbus-test.c Tue Jul 15 14:52:29 2008
@@ -0,0 +1,136 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ * Copyright (C) 2008, Nokia (urho konttori nokia com)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#include <glib.h>
+#include <glib/gtestutils.h>
+
+#include <libtracker-db/tracker-db-dbus.h>
+#include <libtracker-db/tracker-db-interface.h>
+
+
+static TrackerDBResultSet *
+get_mock_tracker_db_result (gint results, gint columns, gboolean set_null) {
+
+ TrackerDBResultSet *mock;
+ gint i, j;
+
+ mock = _tracker_db_result_set_new (columns);
+
+ for (i = 0; i < results; i++) {
+ _tracker_db_result_set_append (mock);
+
+ for (j = 0; j < columns; j++) {
+
+ GValue value = {0,};
+
+ g_value_init (&value, G_TYPE_STRING);
+ g_value_set_string (&value, (set_null ? NULL : g_strdup_printf ("value %d", i)));
+ _tracker_db_result_set_set_value (mock, j, &value);
+ }
+ }
+
+ tracker_db_result_set_rewind (mock);
+
+ return mock;
+
+}
+
+
+
+static void
+test_dbus_query_result_to_strv ()
+{
+
+ TrackerDBResultSet *result_set = NULL;
+ gchar **result;
+ gint count;
+
+ /* NULL */
+ result = tracker_dbus_query_result_to_strv (result_set, 0, &count);
+ g_assert (result == NULL);
+
+ /* 5 results, 1 column */
+ result_set = get_mock_tracker_db_result (5, 1, FALSE);
+ result = tracker_dbus_query_result_to_strv (result_set, 0, &count);
+
+ g_assert_cmpint (count, ==, 5);
+ g_assert_cmpint (g_strv_length (result), ==, 5);
+
+ g_strfreev (result);
+ g_object_unref (result_set);
+
+ /* 0 results, 1 columns */
+ result_set = get_mock_tracker_db_result (0, 1, FALSE);
+ if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR)) {
+ result = tracker_dbus_query_result_to_strv (result_set, 0, &count);
+ }
+ g_test_trap_assert_failed ();
+ // Should raise g_critical (priv->array...);
+
+ g_object_unref (result_set);
+
+
+ /* 1 result ... NULL */
+ result_set = get_mock_tracker_db_result (1, 1, TRUE);
+ result = tracker_dbus_query_result_to_strv (result_set, 0, &count);
+
+ g_assert_cmpint (count, ==, 0);
+
+ g_strfreev (result);
+ g_object_unref (result_set);
+
+}
+
+static void
+test_dbus_query_result_to_hash_table ()
+{
+ /* TODO: Implement */
+ g_print ("- Unimplemented -\n");
+}
+
+static void
+test_dbus_query_result_to_ptr_array ()
+{
+ /* TODO: Implement */
+ g_print ("- Unimplemented -\n");
+}
+
+gint
+main (gint argc, gchar **argv)
+{
+ int result;
+
+ g_type_init ();
+ g_thread_init (NULL);
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/libtracker-db/tracker-db-dbus/query_result_to_strv",
+ test_dbus_query_result_to_strv);
+ g_test_add_func ("/libtracker-db/tracker-db-dbus/query_result_to_hash_table",
+ test_dbus_query_result_to_hash_table);
+ g_test_add_func ("/libtracker-db/tracker-db-dbus/query_result_to_ptr_array",
+ test_dbus_query_result_to_ptr_array);
+
+
+ result = g_test_run ();
+
+ /* End */
+
+ return result;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]