aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/invalid-encoder/array-mixed-types-ints-and-floats.json2
-rw-r--r--tests/invalid.rs20
-rw-r--r--tests/invalid/array-mixed-types-ints-and-floats.toml2
-rw-r--r--tests/invalid/key-empty.toml1
-rw-r--r--tests/invalid/key-hash.toml1
-rw-r--r--tests/invalid/key-newline.toml2
-rw-r--r--tests/invalid/key-open-bracket.toml1
-rw-r--r--tests/invalid/key-single-open-bracket.toml1
-rw-r--r--tests/invalid/key-space.toml1
-rw-r--r--tests/invalid/key-start-bracket.toml3
-rw-r--r--tests/invalid/table-empty.toml1
-rw-r--r--tests/invalid/table-whitespace.toml1
-rw-r--r--tests/invalid/table-with-pound.toml2
-rw-r--r--tests/valid.rs12
-rw-r--r--tests/valid/arrays-hetergeneous.json4
-rw-r--r--tests/valid/arrays-hetergeneous.toml2
-rw-r--r--tests/valid/arrays.json6
-rw-r--r--tests/valid/arrays.toml3
-rw-r--r--tests/valid/key-space.json3
-rw-r--r--tests/valid/key-space.toml1
-rw-r--r--tests/valid/multiline-string.json30
-rw-r--r--tests/valid/multiline-string.toml23
-rw-r--r--tests/valid/raw-multiline-string.json14
-rw-r--r--tests/valid/raw-multiline-string.toml9
-rw-r--r--tests/valid/raw-string.json30
-rw-r--r--tests/valid/raw-string.toml7
-rw-r--r--tests/valid/string-escapes.json16
-rw-r--r--tests/valid/string-escapes.toml4
-rw-r--r--tests/valid/unicode-escape.json3
-rw-r--r--tests/valid/unicode-escape.toml3
30 files changed, 196 insertions, 12 deletions
diff --git a/tests/invalid-encoder/array-mixed-types-ints-and-floats.json b/tests/invalid-encoder/array-mixed-types-ints-and-floats.json
index b7920a0..2d42ead 100644
--- a/tests/invalid-encoder/array-mixed-types-ints-and-floats.json
+++ b/tests/invalid-encoder/array-mixed-types-ints-and-floats.json
@@ -8,7 +8,7 @@
},
{
"type": "float",
- "value": "1.0"
+ "value": "1.1"
}
]
}
diff --git a/tests/invalid.rs b/tests/invalid.rs
index e9a94e9..829e795 100644
--- a/tests/invalid.rs
+++ b/tests/invalid.rs
@@ -50,6 +50,20 @@ test!(float_no_leading_zero,
include_str!("invalid/float-no-leading-zero.toml"));
test!(float_no_trailing_digits,
include_str!("invalid/float-no-trailing-digits.toml"));
+test!(key_empty,
+ include_str!("invalid/key-empty.toml"));
+test!(key_hash,
+ include_str!("invalid/key-hash.toml"));
+test!(key_newline,
+ include_str!("invalid/key-newline.toml"));
+test!(key_open_bracket,
+ include_str!("invalid/key-open-bracket.toml"));
+test!(key_single_open_bracket,
+ include_str!("invalid/key-single-open-bracket.toml"));
+test!(key_space,
+ include_str!("invalid/key-space.toml"));
+test!(key_start_bracket,
+ include_str!("invalid/key-start-bracket.toml"));
test!(key_two_equals,
include_str!("invalid/key-two-equals.toml"));
test!(string_bad_byte_escape,
@@ -66,10 +80,16 @@ test!(table_array_malformed_bracket,
include_str!("invalid/table-array-malformed-bracket.toml"));
test!(table_array_malformed_empty,
include_str!("invalid/table-array-malformed-empty.toml"));
+test!(table_empty,
+ include_str!("invalid/table-empty.toml"));
test!(table_nested_brackets_close,
include_str!("invalid/table-nested-brackets-close.toml"));
test!(table_nested_brackets_open,
include_str!("invalid/table-nested-brackets-open.toml"));
+test!(table_whitespace,
+ include_str!("invalid/table-whitespace.toml"));
+test!(table_with_pound,
+ include_str!("invalid/table-with-pound.toml"));
test!(text_after_array_entries,
include_str!("invalid/text-after-array-entries.toml"));
test!(text_after_integer,
diff --git a/tests/invalid/array-mixed-types-ints-and-floats.toml b/tests/invalid/array-mixed-types-ints-and-floats.toml
index 51ebe80..a5aa9b7 100644
--- a/tests/invalid/array-mixed-types-ints-and-floats.toml
+++ b/tests/invalid/array-mixed-types-ints-and-floats.toml
@@ -1 +1 @@
-ints-and-floats = [1, 1.0]
+ints-and-floats = [1, 1.1]
diff --git a/tests/invalid/key-empty.toml b/tests/invalid/key-empty.toml
new file mode 100644
index 0000000..09f998f
--- /dev/null
+++ b/tests/invalid/key-empty.toml
@@ -0,0 +1 @@
+ = 1
diff --git a/tests/invalid/key-hash.toml b/tests/invalid/key-hash.toml
new file mode 100644
index 0000000..e321b1f
--- /dev/null
+++ b/tests/invalid/key-hash.toml
@@ -0,0 +1 @@
+a# = 1
diff --git a/tests/invalid/key-newline.toml b/tests/invalid/key-newline.toml
new file mode 100644
index 0000000..707aad5
--- /dev/null
+++ b/tests/invalid/key-newline.toml
@@ -0,0 +1,2 @@
+a
+= 1
diff --git a/tests/invalid/key-open-bracket.toml b/tests/invalid/key-open-bracket.toml
new file mode 100644
index 0000000..f0aeb16
--- /dev/null
+++ b/tests/invalid/key-open-bracket.toml
@@ -0,0 +1 @@
+[abc = 1
diff --git a/tests/invalid/key-single-open-bracket.toml b/tests/invalid/key-single-open-bracket.toml
new file mode 100644
index 0000000..8e2f0be
--- /dev/null
+++ b/tests/invalid/key-single-open-bracket.toml
@@ -0,0 +1 @@
+[ \ No newline at end of file
diff --git a/tests/invalid/key-space.toml b/tests/invalid/key-space.toml
new file mode 100644
index 0000000..201806d
--- /dev/null
+++ b/tests/invalid/key-space.toml
@@ -0,0 +1 @@
+a b = 1 \ No newline at end of file
diff --git a/tests/invalid/key-start-bracket.toml b/tests/invalid/key-start-bracket.toml
new file mode 100644
index 0000000..e0597ae
--- /dev/null
+++ b/tests/invalid/key-start-bracket.toml
@@ -0,0 +1,3 @@
+[a]
+[xyz = 5
+[b]
diff --git a/tests/invalid/table-empty.toml b/tests/invalid/table-empty.toml
new file mode 100644
index 0000000..fe51488
--- /dev/null
+++ b/tests/invalid/table-empty.toml
@@ -0,0 +1 @@
+[]
diff --git a/tests/invalid/table-whitespace.toml b/tests/invalid/table-whitespace.toml
new file mode 100644
index 0000000..79bbcb1
--- /dev/null
+++ b/tests/invalid/table-whitespace.toml
@@ -0,0 +1 @@
+[invalid key] \ No newline at end of file
diff --git a/tests/invalid/table-with-pound.toml b/tests/invalid/table-with-pound.toml
new file mode 100644
index 0000000..0d8edb5
--- /dev/null
+++ b/tests/invalid/table-with-pound.toml
@@ -0,0 +1,2 @@
+[key#group]
+answer = 42 \ No newline at end of file
diff --git a/tests/valid.rs b/tests/valid.rs
index f346781..09589c9 100644
--- a/tests/valid.rs
+++ b/tests/valid.rs
@@ -112,6 +112,9 @@ test!(integer,
test!(key_equals_nospace,
include_str!("valid/key-equals-nospace.toml"),
include_str!("valid/key-equals-nospace.json"));
+test!(key_space,
+ include_str!("valid/key-space.toml"),
+ include_str!("valid/key-space.json"));
test!(key_special_chars,
include_str!("valid/key-special-chars.toml"),
include_str!("valid/key-special-chars.json"));
@@ -124,6 +127,15 @@ test!(long_float,
test!(long_integer,
include_str!("valid/long-integer.toml"),
include_str!("valid/long-integer.json"));
+test!(multiline_string,
+ include_str!("valid/multiline-string.toml"),
+ include_str!("valid/multiline-string.json"));
+test!(raw_multiline_string,
+ include_str!("valid/raw-multiline-string.toml"),
+ include_str!("valid/raw-multiline-string.json"));
+test!(raw_string,
+ include_str!("valid/raw-string.toml"),
+ include_str!("valid/raw-string.json"));
test!(string_empty,
include_str!("valid/string-empty.toml"),
include_str!("valid/string-empty.json"));
diff --git a/tests/valid/arrays-hetergeneous.json b/tests/valid/arrays-hetergeneous.json
index e703739..478fa5c 100644
--- a/tests/valid/arrays-hetergeneous.json
+++ b/tests/valid/arrays-hetergeneous.json
@@ -11,8 +11,8 @@
{"type": "string", "value": "b"}
]},
{"type": "array", "value": [
- {"type": "float", "value": "1.0"},
- {"type": "float", "value": "2.0"}
+ {"type": "float", "value": "1.1"},
+ {"type": "float", "value": "2.1"}
]}
]
}
diff --git a/tests/valid/arrays-hetergeneous.toml b/tests/valid/arrays-hetergeneous.toml
index 91fcbdf..a246fcf 100644
--- a/tests/valid/arrays-hetergeneous.toml
+++ b/tests/valid/arrays-hetergeneous.toml
@@ -1 +1 @@
-mixed = [[1, 2], ["a", "b"], [1.0, 2.0]]
+mixed = [[1, 2], ["a", "b"], [1.1, 2.1]]
diff --git a/tests/valid/arrays.json b/tests/valid/arrays.json
index 4d16d8a..58aedbc 100644
--- a/tests/valid/arrays.json
+++ b/tests/valid/arrays.json
@@ -10,9 +10,9 @@
"floats": {
"type": "array",
"value": [
- {"type": "float", "value": "1.0"},
- {"type": "float", "value": "2.0"},
- {"type": "float", "value": "3.0"}
+ {"type": "float", "value": "1.1"},
+ {"type": "float", "value": "2.1"},
+ {"type": "float", "value": "3.1"}
]
},
"strings": {
diff --git a/tests/valid/arrays.toml b/tests/valid/arrays.toml
index 6d6440d..c435f57 100644
--- a/tests/valid/arrays.toml
+++ b/tests/valid/arrays.toml
@@ -1,9 +1,8 @@
ints = [1, 2, 3]
-floats = [1.0, 2.0, 3.0]
+floats = [1.1, 2.1, 3.1]
strings = ["a", "b", "c"]
dates = [
1987-07-05T17:45:00Z,
1979-05-27T07:32:00Z,
2006-06-01T11:00:00Z,
]
-
diff --git a/tests/valid/key-space.json b/tests/valid/key-space.json
new file mode 100644
index 0000000..9d1f769
--- /dev/null
+++ b/tests/valid/key-space.json
@@ -0,0 +1,3 @@
+{
+ "a b": {"type": "integer", "value": "1"}
+}
diff --git a/tests/valid/key-space.toml b/tests/valid/key-space.toml
new file mode 100644
index 0000000..f4f36c4
--- /dev/null
+++ b/tests/valid/key-space.toml
@@ -0,0 +1 @@
+"a b" = 1
diff --git a/tests/valid/multiline-string.json b/tests/valid/multiline-string.json
new file mode 100644
index 0000000..075bf50
--- /dev/null
+++ b/tests/valid/multiline-string.json
@@ -0,0 +1,30 @@
+{
+ "multiline_empty_one": {
+ "type": "string",
+ "value": ""
+ },
+ "multiline_empty_two": {
+ "type": "string",
+ "value": ""
+ },
+ "multiline_empty_three": {
+ "type": "string",
+ "value": ""
+ },
+ "multiline_empty_four": {
+ "type": "string",
+ "value": ""
+ },
+ "equivalent_one": {
+ "type": "string",
+ "value": "The quick brown fox jumps over the lazy dog."
+ },
+ "equivalent_two": {
+ "type": "string",
+ "value": "The quick brown fox jumps over the lazy dog."
+ },
+ "equivalent_three": {
+ "type": "string",
+ "value": "The quick brown fox jumps over the lazy dog."
+ }
+}
diff --git a/tests/valid/multiline-string.toml b/tests/valid/multiline-string.toml
new file mode 100644
index 0000000..15b1143
--- /dev/null
+++ b/tests/valid/multiline-string.toml
@@ -0,0 +1,23 @@
+multiline_empty_one = """"""
+multiline_empty_two = """
+"""
+multiline_empty_three = """\
+ """
+multiline_empty_four = """\
+ \
+ \
+ """
+
+equivalent_one = "The quick brown fox jumps over the lazy dog."
+equivalent_two = """
+The quick brown \
+
+
+ fox jumps over \
+ the lazy dog."""
+
+equivalent_three = """\
+ The quick brown \
+ fox jumps over \
+ the lazy dog.\
+ """
diff --git a/tests/valid/raw-multiline-string.json b/tests/valid/raw-multiline-string.json
new file mode 100644
index 0000000..b43cce5
--- /dev/null
+++ b/tests/valid/raw-multiline-string.json
@@ -0,0 +1,14 @@
+{
+ "oneline": {
+ "type": "string",
+ "value": "This string has a ' quote character."
+ },
+ "firstnl": {
+ "type": "string",
+ "value": "This string has a ' quote character."
+ },
+ "multiline": {
+ "type": "string",
+ "value": "This string\nhas ' a quote character\nand more than\none newline\nin it."
+ }
+}
diff --git a/tests/valid/raw-multiline-string.toml b/tests/valid/raw-multiline-string.toml
new file mode 100644
index 0000000..8094c03
--- /dev/null
+++ b/tests/valid/raw-multiline-string.toml
@@ -0,0 +1,9 @@
+oneline = '''This string has a ' quote character.'''
+firstnl = '''
+This string has a ' quote character.'''
+multiline = '''
+This string
+has ' a quote character
+and more than
+one newline
+in it.'''
diff --git a/tests/valid/raw-string.json b/tests/valid/raw-string.json
new file mode 100644
index 0000000..693ab9b
--- /dev/null
+++ b/tests/valid/raw-string.json
@@ -0,0 +1,30 @@
+{
+ "backspace": {
+ "type": "string",
+ "value": "This string has a \\b backspace character."
+ },
+ "tab": {
+ "type": "string",
+ "value": "This string has a \\t tab character."
+ },
+ "newline": {
+ "type": "string",
+ "value": "This string has a \\n new line character."
+ },
+ "formfeed": {
+ "type": "string",
+ "value": "This string has a \\f form feed character."
+ },
+ "carriage": {
+ "type": "string",
+ "value": "This string has a \\r carriage return character."
+ },
+ "slash": {
+ "type": "string",
+ "value": "This string has a \\/ slash character."
+ },
+ "backslash": {
+ "type": "string",
+ "value": "This string has a \\\\ backslash character."
+ }
+}
diff --git a/tests/valid/raw-string.toml b/tests/valid/raw-string.toml
new file mode 100644
index 0000000..92acd25
--- /dev/null
+++ b/tests/valid/raw-string.toml
@@ -0,0 +1,7 @@
+backspace = 'This string has a \b backspace character.'
+tab = 'This string has a \t tab character.'
+newline = 'This string has a \n new line character.'
+formfeed = 'This string has a \f form feed character.'
+carriage = 'This string has a \r carriage return character.'
+slash = 'This string has a \/ slash character.'
+backslash = 'This string has a \\ backslash character.'
diff --git a/tests/valid/string-escapes.json b/tests/valid/string-escapes.json
index ca71d30..62dac51 100644
--- a/tests/valid/string-escapes.json
+++ b/tests/valid/string-escapes.json
@@ -30,5 +30,21 @@
"backslash": {
"type": "string",
"value": "This string has a \u005C backslash character."
+ },
+ "notunicode1": {
+ "type": "string",
+ "value": "This string does not have a unicode \\u escape."
+ },
+ "notunicode2": {
+ "type": "string",
+ "value": "This string does not have a unicode \u005Cu escape."
+ },
+ "notunicode3": {
+ "type": "string",
+ "value": "This string does not have a unicode \\u0075 escape."
+ },
+ "notunicode4": {
+ "type": "string",
+ "value": "This string does not have a unicode \\\u0075 escape."
}
}
diff --git a/tests/valid/string-escapes.toml b/tests/valid/string-escapes.toml
index 9f9a8c0..c5d4954 100644
--- a/tests/valid/string-escapes.toml
+++ b/tests/valid/string-escapes.toml
@@ -6,3 +6,7 @@ carriage = "This string has a \r carriage return character."
quote = "This string has a \" quote character."
slash = "This string has a / slash character."
backslash = "This string has a \\ backslash character."
+notunicode1 = "This string does not have a unicode \\u escape."
+notunicode2 = "This string does not have a unicode \u005Cu escape."
+notunicode3 = "This string does not have a unicode \\u0075 escape."
+notunicode4 = "This string does not have a unicode \\\u0075 escape."
diff --git a/tests/valid/unicode-escape.json b/tests/valid/unicode-escape.json
index deda62c..216f8f7 100644
--- a/tests/valid/unicode-escape.json
+++ b/tests/valid/unicode-escape.json
@@ -1,3 +1,4 @@
{
- "answer": {"type": "string", "value": "\u03B4"}
+ "answer4": {"type": "string", "value": "\u03B4"},
+ "answer8": {"type": "string", "value": "\u03B4"}
}
diff --git a/tests/valid/unicode-escape.toml b/tests/valid/unicode-escape.toml
index 057ce15..82faecb 100644
--- a/tests/valid/unicode-escape.toml
+++ b/tests/valid/unicode-escape.toml
@@ -1 +1,2 @@
-answer = "\u03B4"
+answer4 = "\u03B4"
+answer8 = "\U000003B4"