aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2025-03-24 15:51:14 -0400
committerDavid Robillard <d@drobilla.net>2025-03-24 17:38:48 -0400
commit8785ef4b74e6a54cdd7c83e69c01a72d8e200314 (patch)
tree820fc28f0bce14ac6b4cfa1b1b963ae953a7380f
parentae2848aabbbd953c6c2ebf58850c04250baaacff (diff)
downloadserd-8785ef4b74e6a54cdd7c83e69c01a72d8e200314.tar.gz
serd-8785ef4b74e6a54cdd7c83e69c01a72d8e200314.tar.bz2
serd-8785ef4b74e6a54cdd7c83e69c01a72d8e200314.zip
Remove unnecessary condition and improve error message test coverage
Not all of these cases are grammatically interesting, but the invalid characters are significant for error reporting (for example, error messages shouldn't contain raw control characters).
-rw-r--r--src/reader.c3
-rw-r--r--test/extra/bad/bad-lang-start-delete.nt1
-rw-r--r--test/extra/bad/bad-lang-start-space.nt1
-rw-r--r--test/extra/bad/bad-lang-start-tab.nt1
-rw-r--r--test/extra/bad/bad-lang-start-wide.nt1
-rw-r--r--test/extra/bad/bad-lang.ttl2
-rw-r--r--test/extra/bad/bad-uri-scheme-start-apostrophe.nt1
-rw-r--r--test/extra/bad/bad-uri-scheme-start-delete.nt1
-rw-r--r--test/extra/bad/bad-uri-scheme-start-space.nt1
-rw-r--r--test/extra/bad/bad-uri-scheme-start-tab.nt1
-rw-r--r--test/extra/bad/bad-uri-scheme-start-wide.nt1
-rw-r--r--test/extra/bad/bad-uri-scheme-start.nt1
-rw-r--r--test/extra/bad/manifest.ttl55
13 files changed, 62 insertions, 8 deletions
diff --git a/src/reader.c b/src/reader.c
index a7e83717..d5ac379b 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -35,8 +35,7 @@ r_err_char(SerdReader* const reader, const char* const kind, const int c)
{
const SerdStatus st = SERD_ERR_BAD_SYNTAX;
- return (c < 0x20 || c == 0x7F || c > 0x10FFFF)
- ? r_err(reader, st, "bad %s character\n", kind)
+ return (c < 0x20 || c == 0x7F) ? r_err(reader, st, "bad %s character\n", kind)
: (c == '\'' || c >= 0x80)
? r_err(reader, st, "bad %s character U+%04X\n", kind, (uint32_t)c)
: r_err(reader, st, "bad %s character '%c'\n", kind, c);
diff --git a/test/extra/bad/bad-lang-start-delete.nt b/test/extra/bad/bad-lang-start-delete.nt
new file mode 100644
index 00000000..122625e0
--- /dev/null
+++ b/test/extra/bad/bad-lang-start-delete.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> "hello"@bad .
diff --git a/test/extra/bad/bad-lang-start-space.nt b/test/extra/bad/bad-lang-start-space.nt
new file mode 100644
index 00000000..ff5c12ab
--- /dev/null
+++ b/test/extra/bad/bad-lang-start-space.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> "hello"@ bad .
diff --git a/test/extra/bad/bad-lang-start-tab.nt b/test/extra/bad/bad-lang-start-tab.nt
new file mode 100644
index 00000000..ad005c6d
--- /dev/null
+++ b/test/extra/bad/bad-lang-start-tab.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> "hello"@ bad .
diff --git a/test/extra/bad/bad-lang-start-wide.nt b/test/extra/bad/bad-lang-start-wide.nt
new file mode 100644
index 00000000..04ca4899
--- /dev/null
+++ b/test/extra/bad/bad-lang-start-wide.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> "hello"@βad .
diff --git a/test/extra/bad/bad-lang.ttl b/test/extra/bad/bad-lang.ttl
index 01e04328..b51df89c 100644
--- a/test/extra/bad/bad-lang.ttl
+++ b/test/extra/bad/bad-lang.ttl
@@ -1 +1 @@
-<> <http://example.org/pred> "hello"@\bad . \ No newline at end of file
+<> <http://example.org/pred> "hello"@b\ad .
diff --git a/test/extra/bad/bad-uri-scheme-start-apostrophe.nt b/test/extra/bad/bad-uri-scheme-start-apostrophe.nt
new file mode 100644
index 00000000..265b46d1
--- /dev/null
+++ b/test/extra/bad/bad-uri-scheme-start-apostrophe.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> <'http://example.org/o> .
diff --git a/test/extra/bad/bad-uri-scheme-start-delete.nt b/test/extra/bad/bad-uri-scheme-start-delete.nt
new file mode 100644
index 00000000..70b4962a
--- /dev/null
+++ b/test/extra/bad/bad-uri-scheme-start-delete.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> <http://example.org/o> .
diff --git a/test/extra/bad/bad-uri-scheme-start-space.nt b/test/extra/bad/bad-uri-scheme-start-space.nt
new file mode 100644
index 00000000..d396d6dd
--- /dev/null
+++ b/test/extra/bad/bad-uri-scheme-start-space.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> < http://example.org/o> .
diff --git a/test/extra/bad/bad-uri-scheme-start-tab.nt b/test/extra/bad/bad-uri-scheme-start-tab.nt
new file mode 100644
index 00000000..458a5743
--- /dev/null
+++ b/test/extra/bad/bad-uri-scheme-start-tab.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> < http://example.org/o> .
diff --git a/test/extra/bad/bad-uri-scheme-start-wide.nt b/test/extra/bad/bad-uri-scheme-start-wide.nt
new file mode 100644
index 00000000..7ddfff60
--- /dev/null
+++ b/test/extra/bad/bad-uri-scheme-start-wide.nt
@@ -0,0 +1 @@
+<http://example.org/s> <http://example.org/p> <σhttp://example.org/o> .
diff --git a/test/extra/bad/bad-uri-scheme-start.nt b/test/extra/bad/bad-uri-scheme-start.nt
deleted file mode 100644
index cd3fd70f..00000000
--- a/test/extra/bad/bad-uri-scheme-start.nt
+++ /dev/null
@@ -1 +0,0 @@
-<2http://example.org/s> <http://example.org/p> <http://example.org/o> .
diff --git a/test/extra/bad/manifest.ttl b/test/extra/bad/manifest.ttl
index 6611e505..a4bb4b4f 100644
--- a/test/extra/bad/manifest.ttl
+++ b/test/extra/bad/manifest.ttl
@@ -63,6 +63,10 @@
<#bad-is-of-keywords>
<#bad-keywords>
<#bad-lang>
+ <#bad-lang-start-delete>
+ <#bad-lang-start-space>
+ <#bad-lang-start-tab>
+ <#bad-lang-start-wide>
<#bad-list>
<#bad-list-close-object>
<#bad-list2>
@@ -92,7 +96,10 @@
<#bad-true-subject>
<#bad-uri-escape>
<#bad-uri-scheme>
- <#bad-uri-scheme-start>
+ <#bad-uri-scheme-start-delete>
+ <#bad-uri-scheme-start-space>
+ <#bad-uri-scheme-start-tab>
+ <#bad-uri-scheme-start-wide>
<#bad-uri-truncated>
<#bad-verb>
) .
@@ -382,6 +389,26 @@
mf:action <bad-lang.ttl> ;
mf:name "bad-lang" .
+<#bad-lang-start-delete>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-lang-start-delete.nt> ;
+ mf:name "bad-lang-start-delete" .
+
+<#bad-lang-start-space>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-lang-start-space.nt> ;
+ mf:name "bad-lang-start-space" .
+
+<#bad-lang-start-tab>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-lang-start-tab.nt> ;
+ mf:name "bad-lang-start-tab" .
+
+<#bad-lang-start-wide>
+ a rdft:TestTurtleNegativeSyntax ;
+ mf:action <bad-lang-start-wide.nt> ;
+ mf:name "bad-lang-start-wide" .
+
<#bad-list>
a rdft:TestTurtleNegativeSyntax ;
mf:action <bad-list.ttl> ;
@@ -527,10 +554,30 @@
mf:action <bad-uri-scheme.nt> ;
mf:name "bad-uri-scheme" .
-<#bad-uri-scheme-start>
+<#bad-uri-scheme-start-apostrophe>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-uri-scheme-start-apostrophe.nt> ;
+ mf:name "bad-uri-scheme-start-apostrophe" .
+
+<#bad-uri-scheme-start-delete>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-uri-scheme-start-delete.nt> ;
+ mf:name "bad-uri-scheme-start-delete" .
+
+<#bad-uri-scheme-start-space>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-uri-scheme-start-space.nt> ;
+ mf:name "bad-uri-scheme-start-space" .
+
+<#bad-uri-scheme-start-tab>
+ a rdft:TestNTriplesNegativeSyntax ;
+ mf:action <bad-uri-scheme-start-tab.nt> ;
+ mf:name "bad-uri-scheme-start-tab" .
+
+<#bad-uri-scheme-start-wide>
a rdft:TestNTriplesNegativeSyntax ;
- mf:action <bad-uri-scheme-start.nt> ;
- mf:name "bad-uri-scheme-start" .
+ mf:action <bad-uri-scheme-start-wide.nt> ;
+ mf:name "bad-uri-scheme-start-wide" .
<#bad-uri-truncated>
a rdft:TestNTriplesNegativeSyntax ;