[tracker/sam/test-insert-or-replace-faster] tests: Reduce # of iterations in insert-or-replace test
- From: Sam Thursfield <sthursfield src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/sam/test-insert-or-replace-faster] tests: Reduce # of iterations in insert-or-replace test
- Date: Wed, 12 Feb 2020 22:46:13 +0000 (UTC)
commit 395d0bdc0d72ebd3ad81bd7702f46e80275588e2
Author: Sam Thursfield <sam afuera me uk>
Date: Wed Feb 12 23:44:56 2020 +0100
tests: Reduce # of iterations in insert-or-replace test
This will hopefully fix some intermittent test failures.
See https://gitlab.gnome.org/GNOME/tracker/issues/145 for details.
.../tracker-insert-or-replace-test.c | 186 +++++++++++++++++++++
1 file changed, 186 insertions(+)
---
diff --git a/tests/libtracker-data/tracker-insert-or-replace-test.c
b/tests/libtracker-data/tracker-insert-or-replace-test.c
new file mode 100644
index 000000000..800016631
--- /dev/null
+++ b/tests/libtracker-data/tracker-insert-or-replace-test.c
@@ -0,0 +1,186 @@
+#include "config.h"
+
+#include <string.h>
+#include <locale.h>
+
+#include <glib.h>
+#include <gio/gio.h>
+#include <glib/gstdio.h>
+
+#include <libtracker-data/tracker-data.h>
+
+static gchar *insert_query_replace = "\
+DELETE { ?r nao:hasTag ?tag . }\
+WHERE {\
+ ?r a nco:PhoneNumber;\
+ nco:phoneNumber \"02141730585%d\";\
+ nao:hasTag ?tag .\
+}\
+\
+DELETE {\
+ ?r a nco:CarPhoneNumber, nco:BbsNumber, nco:PagerNumber,\
+ nco:VideoTelephoneNumber, nco:MessagingNumber, nco:VoicePhoneNumber,\
+ nco:CellPhoneNumber, nco:FaxNumber, nco:ModemNumber .\
+} WHERE {\
+ ?r a nco:PhoneNumber;\
+ nco:phoneNumber \"02141730585%d\" .\
+}\
+\
+INSERT {\
+ _:tel a nco:PhoneNumber ;\
+ nco:phoneNumber \"02141730585%d\" .\
+} WHERE {\
+ OPTIONAL {\
+ ?r a nco:PhoneNumber;\
+ nco:phoneNumber \"02141730585%d\" .\
+ }\
+ FILTER(!bound(?r)) .\
+}\
+\
+INSERT OR REPLACE { <mailto:rhome0 example com%d> a nco:EmailAddress ;\
+ nco:emailAddress \"rhome0 example com%d\" . }\
+\
+DELETE { <contact:r:%d> nco:hasAffiliation ?e . ?e a rdfs:Resource }\
+WHERE { <contact:r:%d> a nco:PersonContact ; nco:hasAffiliation ?e }\
+\
+INSERT OR REPLACE {\
+ _:af1 a nco:Affiliation ;\
+ rdfs:label \"Work\" ;\
+ nco:hasEmailAddress <mailto:rhome0 example com%d> .\
+\
+ _:af2 a nco:Affiliation ;\
+ rdfs:label \"Other\" ;\
+ nco:hasPhoneNumber ?tel .\
+\
+ <contact:r:%d> a nco:PersonContact ;\
+ nco:nameGiven \"First %d\" ;\
+ nco:nameFamily \"Last %d\" ;\
+ nco:hasAffiliation _:af1 ;\
+ nco:hasAffiliation _:af2 ;\
+ nie:contentCreated \"2011-03-14T13:47:25\" ;\
+ nco:contactUID \"c1f1b12d-bc75-4d45-9a1f-b1efe934409f\" .\
+} WHERE {\
+ ?tel nco:phoneNumber \"02141730585%d\"\
+}";
+
+static gchar *insert_query_original = "\
+DELETE { ?r nao:tag ?tag . }\
+WHERE {\
+ ?r a nco:PhoneNumber; nco:phoneNumber \"2141730585%d\";\
+ nao:hasTag ?tag .\
+}\
+\
+DELETE {\
+ ?r a nco:CarPhoneNumber, nco:BbsNumber, nco:PagerNumber,\
+ nco:VideoTelephoneNumber, nco:MessagingNumber, nco:VoicePhoneNumber,\
+ nco:CellPhoneNumber, nco:FaxNumber, nco:ModemNumber .\
+} WHERE {\
+ ?r a nco:PhoneNumber;\
+ nco:phoneNumber \"2141730585%d\" .\
+}\
+\
+INSERT {\
+ _:tel a nco:PhoneNumber ;\
+ nco:phoneNumber \"2141730585%d\" .\
+} WHERE {\
+ OPTIONAL {\
+ ?r a nco:PhoneNumber;\
+ nco:phoneNumber \"2141730585%d\" .\
+ }\
+ FILTER(!bound(?r)) .\
+}\
+\
+INSERT { <mailto:home0 example com%d> a nco:EmailAddress ;\
+ nco:emailAddress \"home0 example com%d\" . }\
+\
+DELETE { <contact:o:%d> nco:hasAffiliation ?e . ?e a rdfs:Resource }\
+WHERE { <contact:o:%d> a nco:PersonContact ; nco:hasAffiliation ?e }\
+\
+DELETE { GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9> {\
+ <contact:o:%d> ?predicate ?object .\
+} } WHERE { GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9> {\
+ <contact:o:%d> ?predicate ?object .\
+ FILTER(?predicate NOT IN (nco:contactLocalUID,nco:contactUID,rdf:type)) .\
+} }\
+\
+INSERT { GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9> {\
+ _:af1 a nco:Affiliation ;\
+ rdfs:label \"Work\" ;\
+ nco:hasEmailAddress <mailto:home0 example com%d> .\
+\
+ _:af2 a nco:Affiliation ;\
+ rdfs:label \"Other\" ;\
+ nco:hasPhoneNumber ?tel .\
+\
+ <contact:o:%d> a nco:PersonContact ;\
+ nco:nameGiven \"First %d\" ;\
+ nco:nameFamily \"Last %d\" ;\
+ nco:hasAffiliation _:af1 ;\
+ nco:hasAffiliation _:af2 ;\
+ nie:contentCreated \"2011-03-14T13:47:25\" ;\
+ nco:contactUID \"c1f1b12d-bc75-4d45-9a1f-b1efe934409f\" .\
+} } WHERE {\
+ ?tel nco:phoneNumber \"2141730585%d\"\
+}";
+
+#define N_QUERIES 10
+
+int
+main (int argc, char *argv[])
+{
+ TrackerDataManager *manager;
+ GError *error = NULL;
+ GFile *cache, *ontology;
+ gchar *test_data_dir;
+ gchar *query;
+ gint i;
+ GTimer *timer;
+
+ test_data_dir = g_build_filename (g_get_tmp_dir (),
+ "insert-or-replace-test-data-XXXXXX",
+ NULL);
+ g_mkdtemp (test_data_dir);
+
+ cache = g_file_new_for_path (test_data_dir);
+ ontology = g_file_new_for_path (TEST_ONTOLOGIES_DIR);
+
+ manager = tracker_data_manager_new (0, cache, ontology,
+ FALSE, 100, 100);
+ g_initable_init (G_INITABLE (manager), NULL, &error);
+ g_assert_no_error (error);
+
+ timer = g_timer_new ();
+
+ for (i = 0; i < N_QUERIES; i++) {
+ query = g_strdup_printf (insert_query_replace,
+ i, i, i, i, i, i, i, i, i , i, i, i, i);
+ tracker_data_update_sparql (tracker_data_manager_get_data (manager),
+ query, &error);
+ g_assert_no_error (error);
+ g_free (query);
+ }
+
+ g_print ("REPLACE : %u contacts: %f\n",
+ N_QUERIES, g_timer_elapsed (timer, NULL));
+ g_timer_destroy (timer);
+ timer = g_timer_new ();
+
+ for (i = 0; i < N_QUERIES; i++) {
+ query = g_strdup_printf (insert_query_original,
+ i, i, i, i, i, i, i, i, i, i, i, i, i, i, i);
+ tracker_data_update_sparql (tracker_data_manager_get_data (manager),
+ query, &error);
+ g_assert_no_error (error);
+ g_free (query);
+ }
+
+ g_print ("ORIGINAL : %u contacts: %f\n", N_QUERIES,
+ g_timer_elapsed (timer, NULL));
+ g_timer_destroy (timer);
+
+ g_object_unref (manager);
+ g_object_unref (cache);
+ g_object_unref (ontology);
+
+ return 0;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]