1 #[test]
incomplete_inline_table_issue_296()2 fn incomplete_inline_table_issue_296() {
3 let err = "native = {".parse::<toml_edit::Document>().unwrap_err();
4 snapbox::assert_eq(
5 r#"TOML parse error at line 1, column 11
6 |
7 1 | native = {
8 | ^
9 invalid inline table
10 expected `}`
11 "#,
12 err.to_string(),
13 );
14 }
15
16 #[test]
bare_value_disallowed_issue_293()17 fn bare_value_disallowed_issue_293() {
18 let err = "value=zzz".parse::<toml_edit::Document>().unwrap_err();
19 snapbox::assert_eq(
20 r#"TOML parse error at line 1, column 7
21 |
22 1 | value=zzz
23 | ^
24 invalid string
25 expected `"`, `'`
26 "#,
27 err.to_string(),
28 );
29 }
30
31 #[test]
bare_value_in_array_disallowed_issue_293()32 fn bare_value_in_array_disallowed_issue_293() {
33 let err = "value=[zzz]".parse::<toml_edit::Document>().unwrap_err();
34 snapbox::assert_eq(
35 r#"TOML parse error at line 1, column 8
36 |
37 1 | value=[zzz]
38 | ^
39 invalid array
40 expected `]`
41 "#,
42 err.to_string(),
43 );
44 }
45
46 #[test]
duplicate_table_after_dotted_key_issue_509()47 fn duplicate_table_after_dotted_key_issue_509() {
48 let err = "
49 [dependencies.foo]
50 version = \"0.16\"
51
52 [dependencies]
53 libc = \"0.2\"
54
55 [dependencies]
56 rand = \"0.3.14\"
57 "
58 .parse::<toml_edit::Document>()
59 .unwrap_err();
60 snapbox::assert_eq(
61 r#"TOML parse error at line 8, column 1
62 |
63 8 | [dependencies]
64 | ^
65 invalid table header
66 duplicate key `dependencies` in document root
67 "#,
68 err.to_string(),
69 );
70 }
71
72 #[test]
bad()73 fn bad() {
74 let toml_input = "a = 01";
75 let expected_err = "\
76 TOML parse error at line 1, column 6
77 |
78 1 | a = 01
79 | ^
80 expected newline, `#`
81 ";
82 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
83 snapbox::assert_eq(expected_err, err.to_string());
84
85 let toml_input = "a = 1__1";
86 let expected_err = "\
87 TOML parse error at line 1, column 7
88 |
89 1 | a = 1__1
90 | ^
91 invalid integer
92 expected digit
93 ";
94 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
95 snapbox::assert_eq(expected_err, err.to_string());
96
97 let toml_input = "a = 1_";
98 let expected_err = "\
99 TOML parse error at line 1, column 7
100 |
101 1 | a = 1_
102 | ^
103 invalid integer
104 expected digit
105 ";
106 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
107 snapbox::assert_eq(expected_err, err.to_string());
108
109 let toml_input = "''";
110 let expected_err = "\
111 TOML parse error at line 1, column 3
112 |
113 1 | ''
114 | ^
115 expected `.`, `=`
116 ";
117 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
118 snapbox::assert_eq(expected_err, err.to_string());
119
120 let toml_input = "a = 9e99999";
121 let expected_err = "\
122 TOML parse error at line 1, column 5
123 |
124 1 | a = 9e99999
125 | ^
126 invalid floating-point number
127 ";
128 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
129 snapbox::assert_eq(expected_err, err.to_string());
130
131 let toml_input = "a = \"\u{7f}\"";
132 let expected_err = "\
133 TOML parse error at line 1, column 6
134 |
135 1 | a = \"\u{7f}\"
136 | ^
137 invalid basic string
138 ";
139 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
140 snapbox::assert_eq(expected_err, err.to_string());
141
142 let toml_input = "a = '\u{7f}'";
143 let expected_err = "\
144 TOML parse error at line 1, column 6
145 |
146 1 | a = '\u{7f}'
147 | ^
148 invalid literal string
149 ";
150 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
151 snapbox::assert_eq(expected_err, err.to_string());
152
153 let toml_input = "a = -0x1";
154 let expected_err = "\
155 TOML parse error at line 1, column 7
156 |
157 1 | a = -0x1
158 | ^
159 expected newline, `#`
160 ";
161 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
162 snapbox::assert_eq(expected_err, err.to_string());
163
164 let toml_input = "a = 0x-1";
165 let expected_err = "\
166 TOML parse error at line 1, column 7
167 |
168 1 | a = 0x-1
169 | ^
170 invalid hexadecimal integer
171 ";
172 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
173 snapbox::assert_eq(expected_err, err.to_string());
174
175 // Dotted keys.
176 let toml_input = "a.b.c = 1
177 a.b = 2
178 ";
179 let expected_err = "\
180 TOML parse error at line 2, column 10
181 |
182 2 | a.b = 2
183 | ^
184 duplicate key `b` in document root
185 ";
186 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
187 snapbox::assert_eq(expected_err, err.to_string());
188
189 let toml_input = "a = 1
190 a.b = 2";
191 let expected_err = "\
192 TOML parse error at line 2, column 10
193 |
194 2 | a.b = 2
195 | ^
196 dotted key `a` attempted to extend non-table type (integer)
197 ";
198 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
199 snapbox::assert_eq(expected_err, err.to_string());
200
201 let toml_input = "a = {k1 = 1, k1.name = \"joe\"}";
202 let expected_err = "\
203 TOML parse error at line 1, column 6
204 |
205 1 | a = {k1 = 1, k1.name = \"joe\"}
206 | ^
207 dotted key `k1` attempted to extend non-table type (integer)
208 ";
209 let err = toml_input.parse::<toml_edit::Document>().unwrap_err();
210 snapbox::assert_eq(expected_err, err.to_string());
211 }
212