aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/extra/bad/manifest.ttl216
-rw-r--r--test/extra/eof/README.md5
-rw-r--r--test/extra/eof/bad-nt-eof-after-blank.nt (renamed from test/extra/bad/bad-nt-eof-after-blank.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-lang-hyphen.nt (renamed from test/extra/bad/bad-nt-eof-after-lang-hyphen.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-lang-subtag.nt (renamed from test/extra/bad/bad-nt-eof-after-lang-subtag.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-lang.nt (renamed from test/extra/bad/bad-nt-eof-after-lang.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-object.nt (renamed from test/extra/bad/bad-nt-eof-after-object.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-predicate.nt (renamed from test/extra/bad/bad-nt-eof-after-predicate.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-string-escape.nt (renamed from test/extra/bad/bad-nt-eof-after-string-escape.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-string.nt (renamed from test/extra/bad/bad-nt-eof-after-string.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-subject.nt (renamed from test/extra/bad/bad-nt-eof-after-subject.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-after-underscore.nt (renamed from test/extra/bad/bad-nt-eof-after-underscore.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-before-blank.nt (renamed from test/extra/bad/bad-nt-eof-before-blank.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-before-iri.nt (renamed from test/extra/bad/bad-nt-eof-before-iri.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-before-lang.nt (renamed from test/extra/bad/bad-nt-eof-before-lang.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-before-string-escape.nt (renamed from test/extra/bad/bad-nt-eof-before-string-escape.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-before-string.nt (renamed from test/extra/bad/bad-nt-eof-before-string.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-in-iri-path.nt (renamed from test/extra/bad/bad-nt-eof-in-iri-path.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-in-iri-scheme.nt (renamed from test/extra/bad/bad-nt-eof-in-iri-scheme.nt)0
-rw-r--r--test/extra/eof/bad-nt-eof-in-string.nt (renamed from test/extra/bad/bad-nt-eof-in-string.nt)0
-rw-r--r--test/extra/eof/bad-ttl-eof-after-quotes.ttl (renamed from test/extra/bad/bad-eof-after-quotes.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-at-string-start.ttl (renamed from test/extra/bad/bad-eof-at-string-start.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-blank.ttl (renamed from test/extra/bad/bad-eof-in-blank.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-escape.ttl (renamed from test/extra/bad/bad-eof-in-escape.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-lang-suffix.ttl (renamed from test/extra/bad/bad-eof-in-lang-suffix.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-lang.ttl (renamed from test/extra/bad/bad-eof-in-lang.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-list.ttl (renamed from test/extra/bad/bad-eof-in-list.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-long-string.ttl (renamed from test/extra/bad/bad-eof-in-long-string.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-object-list.ttl (renamed from test/extra/bad/bad-eof-in-object-list.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-object-list2.ttl (renamed from test/extra/bad/bad-eof-in-object-list2.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-predicate-list.ttl (renamed from test/extra/bad/bad-eof-in-predicate-list.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-string.ttl (renamed from test/extra/bad/bad-eof-in-string.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-text-character.ttl (renamed from test/extra/bad/bad-eof-in-text-character.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-triple-quote.ttl (renamed from test/extra/bad/bad-eof-in-triple-quote.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-uri-character.ttl (renamed from test/extra/bad/bad-eof-in-uri-character.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-uri-scheme.ttl (renamed from test/extra/bad/bad-eof-in-uri-scheme.nt)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-uri.ttl (renamed from test/extra/bad/bad-eof-in-uri.ttl)0
-rw-r--r--test/extra/eof/bad-ttl-eof-in-utf8-character.ttl (renamed from test/extra/bad/bad-eof-in-utf8-character.ttl)0
-rw-r--r--test/extra/eof/manifest.ttl225
-rw-r--r--test/lint/meson.build18
-rw-r--r--test/meson.build11
-rwxr-xr-xtest/run_suite.py11
42 files changed, 259 insertions, 227 deletions
diff --git a/test/extra/bad/manifest.ttl b/test/extra/bad/manifest.ttl
index 64dbf05f..6611e505 100644
--- a/test/extra/bad/manifest.ttl
+++ b/test/extra/bad/manifest.ttl
@@ -28,24 +28,6 @@
<#bad-dot-after-subject>
<#bad-dot-in-collection>
<#bad-empty-blank-predicate>
- <#bad-nt-eof-after-blank>
- <#bad-nt-eof-after-lang>
- <#bad-nt-eof-after-lang-hyphen>
- <#bad-nt-eof-after-lang-subtag>
- <#bad-nt-eof-after-object>
- <#bad-nt-eof-after-predicate>
- <#bad-nt-eof-after-string>
- <#bad-nt-eof-after-string-escape>
- <#bad-nt-eof-after-subject>
- <#bad-nt-eof-after-underscore>
- <#bad-nt-eof-before-blank>
- <#bad-nt-eof-before-iri>
- <#bad-nt-eof-before-lang>
- <#bad-nt-eof-before-string>
- <#bad-nt-eof-before-string-escape>
- <#bad-nt-eof-in-iri-path>
- <#bad-nt-eof-in-iri-scheme>
- <#bad-nt-eof-in-string>
<#bad-nt-syntax-blank-u00F7.nt>
<#bad-nt-syntax-blank-u037E.nt>
<#bad-nt-syntax-blank-u200B.nt>
@@ -65,24 +47,6 @@
<#bad-nt-syntax-uri-grave>
<#bad-nt-syntax-uri-less-than>
<#bad-nt-syntax-uri-opening-brace>
- <#bad-eof-after-quotes>
- <#bad-eof-at-string-start>
- <#bad-eof-in-blank>
- <#bad-eof-in-escape>
- <#bad-eof-in-lang-suffix>
- <#bad-eof-in-lang>
- <#bad-eof-in-list>
- <#bad-eof-in-long-string>
- <#bad-eof-in-object-list>
- <#bad-eof-in-object-list2>
- <#bad-eof-in-predicate-list>
- <#bad-eof-in-string>
- <#bad-eof-in-text-character>
- <#bad-eof-in-triple-quote>
- <#bad-eof-in-uri>
- <#bad-eof-in-uri-character>
- <#bad-eof-in-uri-scheme>
- <#bad-eof-in-utf8-character>
<#bad-equivalence>
<#bad-escape>
<#bad-ext-namedblank-op>
@@ -243,96 +207,6 @@
mf:action <bad-empty-blank-predicate.ttl> ;
mf:name "bad-empty-blank-predicate" .
-<#bad-nt-eof-after-blank>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-blank.nt> ;
- mf:name "bad-nt-eof-after-blank" .
-
-<#bad-nt-eof-after-lang>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-lang.nt> ;
- mf:name "bad-nt-eof-after-lang" .
-
-<#bad-nt-eof-after-lang-hyphen>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-lang-hyphen.nt> ;
- mf:name "bad-nt-eof-after-lang-hyphen" .
-
-<#bad-nt-eof-after-lang-subtag>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-lang-subtag.nt> ;
- mf:name "bad-nt-eof-after-lang-subtag" .
-
-<#bad-nt-eof-after-object>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-object.nt> ;
- mf:name "bad-nt-eof-after-object" .
-
-<#bad-nt-eof-after-predicate>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-predicate.nt> ;
- mf:name "bad-nt-eof-after-predicate" .
-
-<#bad-nt-eof-after-string>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-string.nt> ;
- mf:name "bad-nt-eof-after-string" .
-
-<#bad-nt-eof-after-string-escape>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-string-escape.nt> ;
- mf:name "bad-nt-eof-after-string-escape" .
-
-<#bad-nt-eof-after-subject>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-subject.nt> ;
- mf:name "bad-nt-eof-after-subject" .
-
-<#bad-nt-eof-after-underscore>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-after-underscore.nt> ;
- mf:name "bad-nt-eof-after-underscore" .
-
-<#bad-nt-eof-before-blank>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-before-blank.nt> ;
- mf:name "bad-nt-eof-before-blank" .
-
-<#bad-nt-eof-before-iri>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-before-iri.nt> ;
- mf:name "bad-nt-eof-before-iri" .
-
-<#bad-nt-eof-before-lang>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-before-lang.nt> ;
- mf:name "bad-nt-eof-before-lang" .
-
-<#bad-nt-eof-before-string>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-before-string.nt> ;
- mf:name "bad-nt-eof-before-string" .
-
-<#bad-nt-eof-before-string-escape>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-before-string-escape.nt> ;
- mf:name "bad-nt-eof-before-string-escape" .
-
-<#bad-nt-eof-in-iri-path>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-in-iri-path.nt> ;
- mf:name "bad-nt-eof-in-iri-path" .
-
-<#bad-nt-eof-in-iri-scheme>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-in-iri-scheme.nt> ;
- mf:name "bad-nt-eof-in-iri-scheme" .
-
-<#bad-nt-eof-in-string>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-nt-eof-in-string.nt> ;
- mf:name "bad-nt-eof-in-string" .
-
<#bad-nt-syntax-blank-u00F7>
a rdft:TestNTriplesNegativeSyntax ;
mf:action <bad-nt-syntax-blank-u00F7.nt> ;
@@ -428,96 +302,6 @@
mf:action <bad-nt-syntax-uri-opening-brace.nt> ;
mf:name "bad-nt-syntax-uri-opening-brace" .
-<#bad-eof-after-quotes>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-after-quotes.ttl> ;
- mf:name "bad-eof-after-quotes" .
-
-<#bad-eof-at-string-start>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-at-string-start.ttl> ;
- mf:name "bad-eof-at-string-start" .
-
-<#bad-eof-in-blank>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-blank.ttl> ;
- mf:name "bad-eof-in-blank" .
-
-<#bad-eof-in-escape>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-escape.ttl> ;
- mf:name "bad-eof-in-escape" .
-
-<#bad-eof-in-lang>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-lang.ttl> ;
- mf:name "bad-eof-in-lang" .
-
-<#bad-eof-in-lang-suffix>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-lang-suffix.ttl> ;
- mf:name "bad-eof-in-lang-suffix" .
-
-<#bad-eof-in-list>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-list.ttl> ;
- mf:name "bad-eof-in-list" .
-
-<#bad-eof-in-long-string>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-long-string.ttl> ;
- mf:name "bad-eof-in-long-string" .
-
-<#bad-eof-in-object-list>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-object-list.ttl> ;
- mf:name "bad-eof-in-object-list" .
-
-<#bad-eof-in-object-list2>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-object-list2.ttl> ;
- mf:name "bad-eof-in-object-list2" .
-
-<#bad-eof-in-predicate-list>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-predicate-list.ttl> ;
- mf:name "bad-eof-in-predicate-list" .
-
-<#bad-eof-in-string>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-string.ttl> ;
- mf:name "bad-eof-in-string" .
-
-<#bad-eof-in-text-character>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-text-character.ttl> ;
- mf:name "bad-eof-in-text-character" .
-
-<#bad-eof-in-triple-quote>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-triple-quote.ttl> ;
- mf:name "bad-eof-in-triple-quote" .
-
-<#bad-eof-in-uri>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-uri.ttl> ;
- mf:name "bad-eof-in-uri" .
-
-<#bad-eof-in-uri-character>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-uri-character.ttl> ;
- mf:name "bad-eof-in-uri-character" .
-
-<#bad-eof-in-uri-scheme>
- a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-eof-in-uri-scheme.nt> ;
- mf:name "bad-eof-in-uri-scheme" .
-
-<#bad-eof-in-utf8-character>
- a rdft:TestTurtleNegativeSyntax ;
- mf:action <bad-eof-in-utf8-character.ttl> ;
- mf:name "bad-eof-in-utf8-character" .
-
<#bad-equivalence>
a rdft:TestTurtleNegativeSyntax ;
mf:action <bad-equivalence.ttl> ;
diff --git a/test/extra/eof/README.md b/test/extra/eof/README.md
new file mode 100644
index 00000000..1e461f79
--- /dev/null
+++ b/test/extra/eof/README.md
@@ -0,0 +1,5 @@
+EOF Test Suite
+==============
+
+This simple suite tests that inputs truncated in various places are handled
+correctly.
diff --git a/test/extra/bad/bad-nt-eof-after-blank.nt b/test/extra/eof/bad-nt-eof-after-blank.nt
index bc66ca37..bc66ca37 100644
--- a/test/extra/bad/bad-nt-eof-after-blank.nt
+++ b/test/extra/eof/bad-nt-eof-after-blank.nt
diff --git a/test/extra/bad/bad-nt-eof-after-lang-hyphen.nt b/test/extra/eof/bad-nt-eof-after-lang-hyphen.nt
index 9e885d80..9e885d80 100644
--- a/test/extra/bad/bad-nt-eof-after-lang-hyphen.nt
+++ b/test/extra/eof/bad-nt-eof-after-lang-hyphen.nt
diff --git a/test/extra/bad/bad-nt-eof-after-lang-subtag.nt b/test/extra/eof/bad-nt-eof-after-lang-subtag.nt
index f8158aec..f8158aec 100644
--- a/test/extra/bad/bad-nt-eof-after-lang-subtag.nt
+++ b/test/extra/eof/bad-nt-eof-after-lang-subtag.nt
diff --git a/test/extra/bad/bad-nt-eof-after-lang.nt b/test/extra/eof/bad-nt-eof-after-lang.nt
index 7ab04b06..7ab04b06 100644
--- a/test/extra/bad/bad-nt-eof-after-lang.nt
+++ b/test/extra/eof/bad-nt-eof-after-lang.nt
diff --git a/test/extra/bad/bad-nt-eof-after-object.nt b/test/extra/eof/bad-nt-eof-after-object.nt
index e796f2b0..e796f2b0 100644
--- a/test/extra/bad/bad-nt-eof-after-object.nt
+++ b/test/extra/eof/bad-nt-eof-after-object.nt
diff --git a/test/extra/bad/bad-nt-eof-after-predicate.nt b/test/extra/eof/bad-nt-eof-after-predicate.nt
index ea47bfbe..ea47bfbe 100644
--- a/test/extra/bad/bad-nt-eof-after-predicate.nt
+++ b/test/extra/eof/bad-nt-eof-after-predicate.nt
diff --git a/test/extra/bad/bad-nt-eof-after-string-escape.nt b/test/extra/eof/bad-nt-eof-after-string-escape.nt
index 869907e8..869907e8 100644
--- a/test/extra/bad/bad-nt-eof-after-string-escape.nt
+++ b/test/extra/eof/bad-nt-eof-after-string-escape.nt
diff --git a/test/extra/bad/bad-nt-eof-after-string.nt b/test/extra/eof/bad-nt-eof-after-string.nt
index 32dda36d..32dda36d 100644
--- a/test/extra/bad/bad-nt-eof-after-string.nt
+++ b/test/extra/eof/bad-nt-eof-after-string.nt
diff --git a/test/extra/bad/bad-nt-eof-after-subject.nt b/test/extra/eof/bad-nt-eof-after-subject.nt
index 21fa07f4..21fa07f4 100644
--- a/test/extra/bad/bad-nt-eof-after-subject.nt
+++ b/test/extra/eof/bad-nt-eof-after-subject.nt
diff --git a/test/extra/bad/bad-nt-eof-after-underscore.nt b/test/extra/eof/bad-nt-eof-after-underscore.nt
index 4b05f2ac..4b05f2ac 100644
--- a/test/extra/bad/bad-nt-eof-after-underscore.nt
+++ b/test/extra/eof/bad-nt-eof-after-underscore.nt
diff --git a/test/extra/bad/bad-nt-eof-before-blank.nt b/test/extra/eof/bad-nt-eof-before-blank.nt
index 99f70844..99f70844 100644
--- a/test/extra/bad/bad-nt-eof-before-blank.nt
+++ b/test/extra/eof/bad-nt-eof-before-blank.nt
diff --git a/test/extra/bad/bad-nt-eof-before-iri.nt b/test/extra/eof/bad-nt-eof-before-iri.nt
index c5fa7845..c5fa7845 100644
--- a/test/extra/bad/bad-nt-eof-before-iri.nt
+++ b/test/extra/eof/bad-nt-eof-before-iri.nt
diff --git a/test/extra/bad/bad-nt-eof-before-lang.nt b/test/extra/eof/bad-nt-eof-before-lang.nt
index f1a9d0df..f1a9d0df 100644
--- a/test/extra/bad/bad-nt-eof-before-lang.nt
+++ b/test/extra/eof/bad-nt-eof-before-lang.nt
diff --git a/test/extra/bad/bad-nt-eof-before-string-escape.nt b/test/extra/eof/bad-nt-eof-before-string-escape.nt
index 30443488..30443488 100644
--- a/test/extra/bad/bad-nt-eof-before-string-escape.nt
+++ b/test/extra/eof/bad-nt-eof-before-string-escape.nt
diff --git a/test/extra/bad/bad-nt-eof-before-string.nt b/test/extra/eof/bad-nt-eof-before-string.nt
index 6a2a7543..6a2a7543 100644
--- a/test/extra/bad/bad-nt-eof-before-string.nt
+++ b/test/extra/eof/bad-nt-eof-before-string.nt
diff --git a/test/extra/bad/bad-nt-eof-in-iri-path.nt b/test/extra/eof/bad-nt-eof-in-iri-path.nt
index e8555e2b..e8555e2b 100644
--- a/test/extra/bad/bad-nt-eof-in-iri-path.nt
+++ b/test/extra/eof/bad-nt-eof-in-iri-path.nt
diff --git a/test/extra/bad/bad-nt-eof-in-iri-scheme.nt b/test/extra/eof/bad-nt-eof-in-iri-scheme.nt
index 2c071547..2c071547 100644
--- a/test/extra/bad/bad-nt-eof-in-iri-scheme.nt
+++ b/test/extra/eof/bad-nt-eof-in-iri-scheme.nt
diff --git a/test/extra/bad/bad-nt-eof-in-string.nt b/test/extra/eof/bad-nt-eof-in-string.nt
index 98944654..98944654 100644
--- a/test/extra/bad/bad-nt-eof-in-string.nt
+++ b/test/extra/eof/bad-nt-eof-in-string.nt
diff --git a/test/extra/bad/bad-eof-after-quotes.ttl b/test/extra/eof/bad-ttl-eof-after-quotes.ttl
index 40e429cb..40e429cb 100644
--- a/test/extra/bad/bad-eof-after-quotes.ttl
+++ b/test/extra/eof/bad-ttl-eof-after-quotes.ttl
diff --git a/test/extra/bad/bad-eof-at-string-start.ttl b/test/extra/eof/bad-ttl-eof-at-string-start.ttl
index 93d20bcc..93d20bcc 100644
--- a/test/extra/bad/bad-eof-at-string-start.ttl
+++ b/test/extra/eof/bad-ttl-eof-at-string-start.ttl
diff --git a/test/extra/bad/bad-eof-in-blank.ttl b/test/extra/eof/bad-ttl-eof-in-blank.ttl
index 8cf4ee84..8cf4ee84 100644
--- a/test/extra/bad/bad-eof-in-blank.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-blank.ttl
diff --git a/test/extra/bad/bad-eof-in-escape.ttl b/test/extra/eof/bad-ttl-eof-in-escape.ttl
index 24b4eec6..24b4eec6 100644
--- a/test/extra/bad/bad-eof-in-escape.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-escape.ttl
diff --git a/test/extra/bad/bad-eof-in-lang-suffix.ttl b/test/extra/eof/bad-ttl-eof-in-lang-suffix.ttl
index f46a7763..f46a7763 100644
--- a/test/extra/bad/bad-eof-in-lang-suffix.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-lang-suffix.ttl
diff --git a/test/extra/bad/bad-eof-in-lang.ttl b/test/extra/eof/bad-ttl-eof-in-lang.ttl
index bfdffd02..bfdffd02 100644
--- a/test/extra/bad/bad-eof-in-lang.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-lang.ttl
diff --git a/test/extra/bad/bad-eof-in-list.ttl b/test/extra/eof/bad-ttl-eof-in-list.ttl
index 13eeb88d..13eeb88d 100644
--- a/test/extra/bad/bad-eof-in-list.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-list.ttl
diff --git a/test/extra/bad/bad-eof-in-long-string.ttl b/test/extra/eof/bad-ttl-eof-in-long-string.ttl
index 2ef179a8..2ef179a8 100644
--- a/test/extra/bad/bad-eof-in-long-string.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-long-string.ttl
diff --git a/test/extra/bad/bad-eof-in-object-list.ttl b/test/extra/eof/bad-ttl-eof-in-object-list.ttl
index 9bbcd17a..9bbcd17a 100644
--- a/test/extra/bad/bad-eof-in-object-list.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-object-list.ttl
diff --git a/test/extra/bad/bad-eof-in-object-list2.ttl b/test/extra/eof/bad-ttl-eof-in-object-list2.ttl
index 9186fb9f..9186fb9f 100644
--- a/test/extra/bad/bad-eof-in-object-list2.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-object-list2.ttl
diff --git a/test/extra/bad/bad-eof-in-predicate-list.ttl b/test/extra/eof/bad-ttl-eof-in-predicate-list.ttl
index eab5b05b..eab5b05b 100644
--- a/test/extra/bad/bad-eof-in-predicate-list.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-predicate-list.ttl
diff --git a/test/extra/bad/bad-eof-in-string.ttl b/test/extra/eof/bad-ttl-eof-in-string.ttl
index bb6e817f..bb6e817f 100644
--- a/test/extra/bad/bad-eof-in-string.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-string.ttl
diff --git a/test/extra/bad/bad-eof-in-text-character.ttl b/test/extra/eof/bad-ttl-eof-in-text-character.ttl
index a614803a..a614803a 100644
--- a/test/extra/bad/bad-eof-in-text-character.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-text-character.ttl
diff --git a/test/extra/bad/bad-eof-in-triple-quote.ttl b/test/extra/eof/bad-ttl-eof-in-triple-quote.ttl
index fb935441..fb935441 100644
--- a/test/extra/bad/bad-eof-in-triple-quote.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-triple-quote.ttl
diff --git a/test/extra/bad/bad-eof-in-uri-character.ttl b/test/extra/eof/bad-ttl-eof-in-uri-character.ttl
index eda70770..eda70770 100644
--- a/test/extra/bad/bad-eof-in-uri-character.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-uri-character.ttl
diff --git a/test/extra/bad/bad-eof-in-uri-scheme.nt b/test/extra/eof/bad-ttl-eof-in-uri-scheme.ttl
index de892dcf..de892dcf 100644
--- a/test/extra/bad/bad-eof-in-uri-scheme.nt
+++ b/test/extra/eof/bad-ttl-eof-in-uri-scheme.ttl
diff --git a/test/extra/bad/bad-eof-in-uri.ttl b/test/extra/eof/bad-ttl-eof-in-uri.ttl
index 07b6e6ab..07b6e6ab 100644
--- a/test/extra/bad/bad-eof-in-uri.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-uri.ttl
diff --git a/test/extra/bad/bad-eof-in-utf8-character.ttl b/test/extra/eof/bad-ttl-eof-in-utf8-character.ttl
index 16784e88..16784e88 100644
--- a/test/extra/bad/bad-eof-in-utf8-character.ttl
+++ b/test/extra/eof/bad-ttl-eof-in-utf8-character.ttl
diff --git a/test/extra/eof/manifest.ttl b/test/extra/eof/manifest.ttl
new file mode 100644
index 00000000..465333f7
--- /dev/null
+++ b/test/extra/eof/manifest.ttl
@@ -0,0 +1,225 @@
+@prefix mf: <http://www.w3.org/2001/sw/DataAccess/tests/test-manifest#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix rdft: <http://www.w3.org/ns/rdftest#> .
+
+<>
+ a mf:Manifest ;
+ rdfs:comment "Serd EOF (truncated input) test suite" ;
+ mf:entries (
+ <#bad-nt-eof-after-blank>
+ <#bad-nt-eof-after-lang>
+ <#bad-nt-eof-after-lang-hyphen>
+ <#bad-nt-eof-after-lang-subtag>
+ <#bad-nt-eof-after-object>
+ <#bad-nt-eof-after-predicate>
+ <#bad-nt-eof-after-string>
+ <#bad-nt-eof-after-string-escape>
+ <#bad-nt-eof-after-subject>
+ <#bad-nt-eof-after-underscore>
+ <#bad-nt-eof-before-blank>
+ <#bad-nt-eof-before-iri>
+ <#bad-nt-eof-before-lang>
+ <#bad-nt-eof-before-string>
+ <#bad-nt-eof-before-string-escape>
+ <#bad-nt-eof-in-iri-path>
+ <#bad-nt-eof-in-iri-scheme>
+ <#bad-nt-eof-in-string>
+ <#bad-ttl-eof-after-quotes>
+ <#bad-ttl-eof-at-string-start>
+ <#bad-ttl-eof-in-blank>
+ <#bad-ttl-eof-in-escape>
+ <#bad-ttl-eof-in-lang>
+ <#bad-ttl-eof-in-lang-suffix>
+ <#bad-ttl-eof-in-list>
+ <#bad-ttl-eof-in-long-string>
+ <#bad-ttl-eof-in-object-list>
+ <#bad-ttl-eof-in-object-list2>
+ <#bad-ttl-eof-in-predicate-list>
+ <#bad-ttl-eof-in-string>
+ <#bad-ttl-eof-in-text-character>
+ <#bad-ttl-eof-in-triple-quote>
+ <#bad-ttl-eof-in-uri>
+ <#bad-ttl-eof-in-uri-character>
+ <#bad-ttl-eof-in-uri-scheme>
+ <#bad-ttl-eof-in-utf8-character>
+ ) .
+
+<#bad-nt-eof-after-blank>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-blank.nt> ;
+ mf:name "bad-nt-eof-after-blank" .
+
+<#bad-nt-eof-after-lang>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-lang.nt> ;
+ mf:name "bad-nt-eof-after-lang" .
+
+<#bad-nt-eof-after-lang-hyphen>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-lang-hyphen.nt> ;
+ mf:name "bad-nt-eof-after-lang-hyphen" .
+
+<#bad-nt-eof-after-lang-subtag>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-lang-subtag.nt> ;
+ mf:name "bad-nt-eof-after-lang-subtag" .
+
+<#bad-nt-eof-after-object>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-object.nt> ;
+ mf:name "bad-nt-eof-after-object" .
+
+<#bad-nt-eof-after-predicate>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-predicate.nt> ;
+ mf:name "bad-nt-eof-after-predicate" .
+
+<#bad-nt-eof-after-string>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-string.nt> ;
+ mf:name "bad-nt-eof-after-string" .
+
+<#bad-nt-eof-after-string-escape>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-string-escape.nt> ;
+ mf:name "bad-nt-eof-after-string-escape" .
+
+<#bad-nt-eof-after-subject>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-subject.nt> ;
+ mf:name "bad-nt-eof-after-subject" .
+
+<#bad-nt-eof-after-underscore>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-after-underscore.nt> ;
+ mf:name "bad-nt-eof-after-underscore" .
+
+<#bad-nt-eof-before-blank>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-before-blank.nt> ;
+ mf:name "bad-nt-eof-before-blank" .
+
+<#bad-nt-eof-before-iri>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-before-iri.nt> ;
+ mf:name "bad-nt-eof-before-iri" .
+
+<#bad-nt-eof-before-lang>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-before-lang.nt> ;
+ mf:name "bad-nt-eof-before-lang" .
+
+<#bad-nt-eof-before-string>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-before-string.nt> ;
+ mf:name "bad-nt-eof-before-string" .
+
+<#bad-nt-eof-before-string-escape>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-before-string-escape.nt> ;
+ mf:name "bad-nt-eof-before-string-escape" .
+
+<#bad-nt-eof-in-iri-path>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-in-iri-path.nt> ;
+ mf:name "bad-nt-eof-in-iri-path" .
+
+<#bad-nt-eof-in-iri-scheme>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-in-iri-scheme.nt> ;
+ mf:name "bad-nt-eof-in-iri-scheme" .
+
+<#bad-nt-eof-in-string>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-nt-eof-in-string.nt> ;
+ mf:name "bad-nt-eof-in-string" .
+
+<#bad-ttl-eof-after-quotes>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-after-quotes.ttl> ;
+ mf:name "bad-ttl-eof-after-quotes" .
+
+<#bad-ttl-eof-at-string-start>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-at-string-start.ttl> ;
+ mf:name "bad-ttl-eof-at-string-start" .
+
+<#bad-ttl-eof-in-blank>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-blank.ttl> ;
+ mf:name "bad-ttl-eof-in-blank" .
+
+<#bad-ttl-eof-in-escape>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-escape.ttl> ;
+ mf:name "bad-ttl-eof-in-escape" .
+
+<#bad-ttl-eof-in-lang>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-lang.ttl> ;
+ mf:name "bad-ttl-eof-in-lang" .
+
+<#bad-ttl-eof-in-lang-suffix>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-lang-suffix.ttl> ;
+ mf:name "bad-ttl-eof-in-lang-suffix" .
+
+<#bad-ttl-eof-in-list>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-list.ttl> ;
+ mf:name "bad-ttl-eof-in-list" .
+
+<#bad-ttl-eof-in-long-string>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-long-string.ttl> ;
+ mf:name "bad-ttl-eof-in-long-string" .
+
+<#bad-ttl-eof-in-object-list>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-object-list.ttl> ;
+ mf:name "bad-ttl-eof-in-object-list" .
+
+<#bad-ttl-eof-in-object-list2>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-object-list2.ttl> ;
+ mf:name "bad-ttl-eof-in-object-list2" .
+
+<#bad-ttl-eof-in-predicate-list>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-predicate-list.ttl> ;
+ mf:name "bad-ttl-eof-in-predicate-list" .
+
+<#bad-ttl-eof-in-string>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-string.ttl> ;
+ mf:name "bad-ttl-eof-in-string" .
+
+<#bad-ttl-eof-in-text-character>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-text-character.ttl> ;
+ mf:name "bad-ttl-eof-in-text-character" .
+
+<#bad-ttl-eof-in-triple-quote>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-triple-quote.ttl> ;
+ mf:name "bad-ttl-eof-in-triple-quote" .
+
+<#bad-ttl-eof-in-uri>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-uri.ttl> ;
+ mf:name "bad-ttl-eof-in-uri" .
+
+<#bad-ttl-eof-in-uri-character>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-uri-character.ttl> ;
+ mf:name "bad-ttl-eof-in-uri-character" .
+
+<#bad-ttl-eof-in-uri-scheme>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-uri-scheme.ttl> ;
+ mf:name "bad-ttl-eof-in-uri-scheme" .
+
+<#bad-ttl-eof-in-utf8-character>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-ttl-eof-in-utf8-character.ttl> ;
+ mf:name "bad-ttl-eof-in-utf8-character" .
diff --git a/test/lint/meson.build b/test/lint/meson.build
index b89af7d7..7e024cb5 100644
--- a/test/lint/meson.build
+++ b/test/lint/meson.build
@@ -94,14 +94,16 @@ if pylint.found()
endif
# Check Turtle formatting with serdi
-foreach ttl_file_path : ttl_metadata_file_paths
- test(
- ttl_file_path.substring(3).underscorify(),
- check_formatting_py,
- args: [files(ttl_file_path), serdi, '-o', 'turtle'],
- suite: 'data',
- )
-endforeach
+if is_variable('serdi')
+ foreach ttl_file_path : ttl_metadata_file_paths
+ test(
+ ttl_file_path.substring(3).underscorify(),
+ check_formatting_py,
+ args: [files(ttl_file_path), serdi, '-o', 'turtle'],
+ suite: 'data',
+ )
+ endforeach
+endif
if not meson.is_subproject()
# Check release metadata
diff --git a/test/meson.build b/test/meson.build
index 889d6fae..db88fa61 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -212,6 +212,17 @@ test_suites = {
'--',
'-b',
],
+ 'eof': [
+ files('extra/eof/manifest.ttl'),
+ ns_serdtest + 'eof/',
+ ],
+ 'eof_lax': [
+ '--ignore',
+ files('extra/eof/manifest.ttl'),
+ ns_serdtest + 'eof/',
+ '--',
+ '-l'
+ ],
'fast': [
files('extra/good/manifest.ttl'),
ns_serdtest + 'good/',
diff --git a/test/run_suite.py b/test/run_suite.py
index 2e93502f..3811a74e 100755
--- a/test/run_suite.py
+++ b/test/run_suite.py
@@ -58,7 +58,7 @@ def run_positive_test(base_uri, command, in_path):
return True
-def run_negative_test(base_uri, command, in_path):
+def run_negative_test(base_uri, command, in_path, ignore):
"""Run a negative syntax test and return whether the error was detected."""
if not os.path.exists(in_path):
@@ -67,10 +67,14 @@ def run_negative_test(base_uri, command, in_path):
command = command + [in_path, base_uri]
proc = subprocess.run(command, check=False, stderr=PIPE, stdout=DEVNULL)
- if proc.returncode == 0:
+ if not ignore and proc.returncode == 0:
util.error("Unexpected successful return: " + in_path)
return False
+ if proc.returncode < 0:
+ util.error("Command seems to have crashed: " + in_path)
+ return False
+
if len(proc.stderr) == 0:
util.error("Command failed with no error output: " + in_path)
return False
@@ -86,7 +90,7 @@ def run_entry(args, entry, command, out_dir, suite_dir):
negative = "Negative" in entry[NS_RDF + "type"][0]
if negative and not args.lax:
- return run_negative_test(base, command, in_path)
+ return run_negative_test(base, command, in_path, args.ignore)
if NS_MF + "result" not in entry:
return run_positive_test(base, command, in_path)
@@ -151,6 +155,7 @@ def main():
)
parser.add_argument("--asserter", help="asserter URI for test report")
+ parser.add_argument("--ignore", action="store_true", help="ignore status")
parser.add_argument("--lax", action="store_true", help="tolerate errors")
parser.add_argument("--report", help="path to write result report to")
parser.add_argument("--reverse", action="store_true", help="reverse test")