[tracker/wip/carlosg/sparql1.1: 187/201] tests: Add tests for DESCRIBE
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/sparql1.1: 187/201] tests: Add tests for DESCRIBE
- Date: Mon, 9 Sep 2019 22:34:32 +0000 (UTC)
commit 03a923ac65d4657c8620b058365b0b69e19185b2
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Jul 21 12:17:18 2019 +0200
tests: Add tests for DESCRIBE
tests/libtracker-data/describe/data.ttl | 31 ++++++++++++++++++++
tests/libtracker-data/describe/describe-limit.out | 11 +++++++
tests/libtracker-data/describe/describe-limit.rq | 1 +
.../libtracker-data/describe/describe-multiple.out | 22 ++++++++++++++
.../libtracker-data/describe/describe-multiple.rq | 1 +
.../describe/describe-non-existent.out | 0
.../describe/describe-non-existent.rq | 1 +
.../libtracker-data/describe/describe-pattern.out | 6 ++++
tests/libtracker-data/describe/describe-pattern.rq | 1 +
tests/libtracker-data/describe/describe-single.out | 5 ++++
tests/libtracker-data/describe/describe-single.rq | 1 +
tests/libtracker-data/describe/test.ontology | 34 ++++++++++++++++++++++
tests/libtracker-data/tracker-sparql-test.c | 29 ++++++++++++++++--
13 files changed, 140 insertions(+), 3 deletions(-)
---
diff --git a/tests/libtracker-data/describe/data.ttl b/tests/libtracker-data/describe/data.ttl
new file mode 100644
index 000000000..7449849fd
--- /dev/null
+++ b/tests/libtracker-data/describe/data.ttl
@@ -0,0 +1,31 @@
+@prefix example: <http://example/> .
+
+<a> a example:A ;
+ example:name 'nameA' ;
+ example:date '2000-01-01T00:00:01Z' ;
+ example:number 42 .
+
+<b> a example:A ;
+ example:name 'nameB' ;
+ example:date '2001-01-01T00:00:01Z' ;
+ example:number 73 ;
+ example:relation <z> .
+
+<c> a example:A ;
+ example:name 'nameC' ;
+ example:number 113 ;
+ example:relation <x> .
+
+<d> a example:A ;
+ example:name 'nameD' ;
+ example:date '2002-01-01T00:00:01Z' ;
+ example:relation <z> .
+
+<x> a example:B ;
+ example:title 'titleX' .
+
+<y> a example:B ;
+ example:title 'titleY' .
+
+<z> a example:B ;
+ example:title 'titleZ' .
diff --git a/tests/libtracker-data/describe/describe-limit.out
b/tests/libtracker-data/describe/describe-limit.out
new file mode 100644
index 000000000..e983c2b48
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-limit.out
@@ -0,0 +1,11 @@
+"a" "http://example/number" "42"
+"a" "http://example/date" "2000-01-01T00:00:01Z"
+"a" "http://example/name" "nameA"
+"a" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"a" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
+"b" "http://example/relation" "z"
+"b" "http://example/number" "73"
+"b" "http://example/date" "2001-01-01T00:00:01Z"
+"b" "http://example/name" "nameB"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
diff --git a/tests/libtracker-data/describe/describe-limit.rq
b/tests/libtracker-data/describe/describe-limit.rq
new file mode 100644
index 000000000..f09f243e1
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-limit.rq
@@ -0,0 +1 @@
+describe ?u { ?u a example:A } limit 2 order by ?u
diff --git a/tests/libtracker-data/describe/describe-multiple.out
b/tests/libtracker-data/describe/describe-multiple.out
new file mode 100644
index 000000000..034058637
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-multiple.out
@@ -0,0 +1,22 @@
+"b" "http://example/relation" "z"
+"b" "http://example/number" "73"
+"b" "http://example/date" "2001-01-01T00:00:01Z"
+"b" "http://example/name" "nameB"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
+"z" "http://example/title" "titleZ"
+"z" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"z" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/B"
+"c" "http://example/relation" "x"
+"c" "http://example/number" "113"
+"c" "http://example/name" "nameC"
+"c" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"c" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
+"x" "http://example/title" "titleX"
+"x" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"x" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/B"
+"d" "http://example/relation" "z"
+"d" "http://example/date" "2002-01-01T00:00:01Z"
+"d" "http://example/name" "nameD"
+"d" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"d" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
diff --git a/tests/libtracker-data/describe/describe-multiple.rq
b/tests/libtracker-data/describe/describe-multiple.rq
new file mode 100644
index 000000000..3e67f4e16
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-multiple.rq
@@ -0,0 +1 @@
+DESCRIBE ?u ?r { ?u example:relation ?r }
diff --git a/tests/libtracker-data/describe/describe-non-existent.out
b/tests/libtracker-data/describe/describe-non-existent.out
new file mode 100644
index 000000000..e69de29bb
diff --git a/tests/libtracker-data/describe/describe-non-existent.rq
b/tests/libtracker-data/describe/describe-non-existent.rq
new file mode 100644
index 000000000..e80fd6229
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-non-existent.rq
@@ -0,0 +1 @@
+DESCRIBE <non-existent>
diff --git a/tests/libtracker-data/describe/describe-pattern.out
b/tests/libtracker-data/describe/describe-pattern.out
new file mode 100644
index 000000000..e512b1d8c
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-pattern.out
@@ -0,0 +1,6 @@
+"b" "http://example/relation" "z"
+"b" "http://example/number" "73"
+"b" "http://example/date" "2001-01-01T00:00:01Z"
+"b" "http://example/name" "nameB"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
diff --git a/tests/libtracker-data/describe/describe-pattern.rq
b/tests/libtracker-data/describe/describe-pattern.rq
new file mode 100644
index 000000000..061b49c7a
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-pattern.rq
@@ -0,0 +1 @@
+DESCRIBE ?u { ?u example:name 'nameB' }
diff --git a/tests/libtracker-data/describe/describe-single.out
b/tests/libtracker-data/describe/describe-single.out
new file mode 100644
index 000000000..0bb548ba0
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-single.out
@@ -0,0 +1,5 @@
+"a" "http://example/number" "42"
+"a" "http://example/date" "2000-01-01T00:00:01Z"
+"a" "http://example/name" "nameA"
+"a" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
"http://www.w3.org/2000/01/rdf-schema#Resource"
+"a" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
diff --git a/tests/libtracker-data/describe/describe-single.rq
b/tests/libtracker-data/describe/describe-single.rq
new file mode 100644
index 000000000..bc781f9a6
--- /dev/null
+++ b/tests/libtracker-data/describe/describe-single.rq
@@ -0,0 +1 @@
+DESCRIBE <a>
diff --git a/tests/libtracker-data/describe/test.ontology b/tests/libtracker-data/describe/test.ontology
new file mode 100644
index 000000000..0a803ae95
--- /dev/null
+++ b/tests/libtracker-data/describe/test.ontology
@@ -0,0 +1,34 @@
+@prefix example: <http://example/> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix tracker: <http://www.tracker-project.org/ontologies/tracker#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+example: a tracker:Namespace ;
+ tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+ rdfs:subClassOf rdfs:Resource .
+
+example:name a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range xsd:string .
+
+example:date a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range xsd:dateTime .
+
+example:number a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range xsd:integer .
+
+example:B a rdfs:Class ;
+ rdfs:subClassOf rdfs:Resource .
+
+example:title a rdf:Property ;
+ rdfs:domain example:B ;
+ rdfs:range xsd:string .
+
+example:relation a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range example:B .
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 1b0ff46de..62952b7f5 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -87,6 +87,11 @@ const TestInfo tests[] = {
{ "datetime/functions-localtime-1", "datetime/data-1", FALSE },
{ "datetime/functions-timezone-1", "datetime/data-2", FALSE },
{ "datetime/functions-timezone-2", "datetime/data-2", FALSE },
+ { "describe/describe-single", "describe/data", FALSE },
+ { "describe/describe-non-existent", "describe/data", FALSE },
+ { "describe/describe-pattern", "describe/data", FALSE },
+ { "describe/describe-limit", "describe/data", FALSE },
+ { "describe/describe-multiple", "describe/data", FALSE },
{ "expr-ops/query-ge-1", "expr-ops/data", FALSE },
{ "expr-ops/query-le-1", "expr-ops/data", FALSE },
{ "expr-ops/query-minus-1", "expr-ops/data", FALSE },
@@ -263,21 +268,39 @@ check_result (TrackerDBCursor *cursor,
gint col;
while (tracker_db_cursor_iter_next (cursor, NULL, &error)) {
+ GString *row_str = g_string_new (NULL);
+
for (col = 0; col < tracker_db_cursor_get_n_columns (cursor); col++) {
const gchar *str;
if (col > 0) {
- g_string_append (test_results, "\t");
+ g_string_append (row_str, "\t");
}
str = tracker_db_cursor_get_string (cursor, col, NULL);
+
+ /* Hack to avoid misc properties that might tamper with
+ * test reproduceability in DESCRIBE and other unrestricted
+ * queries.
+ */
+ if (g_strcmp0 (str, TRACKER_PREFIX_TRACKER "modified") == 0 ||
+ g_strcmp0 (str, TRACKER_PREFIX_TRACKER "added") == 0) {
+ g_string_free (row_str, TRUE);
+ row_str = NULL;
+ break;
+ }
+
if (str != NULL) {
/* bound variable */
- g_string_append_printf (test_results, "\"%s\"", str);
+ g_string_append_printf (row_str, "\"%s\"", str);
}
}
- g_string_append (test_results, "\n");
+ if (row_str) {
+ g_string_append (test_results, row_str->str);
+ g_string_free (row_str, TRUE);
+ g_string_append (test_results, "\n");
+ }
}
} else if (test_info->expect_query_error) {
g_assert (error != NULL && error->domain == TRACKER_SPARQL_ERROR);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]