diff options
Diffstat (limited to 'vendor/toml_edit-0.19.11/tests/testsuite/invalid.rs')
-rw-r--r-- | vendor/toml_edit-0.19.11/tests/testsuite/invalid.rs | 211 |
1 files changed, 211 insertions, 0 deletions
diff --git a/vendor/toml_edit-0.19.11/tests/testsuite/invalid.rs b/vendor/toml_edit-0.19.11/tests/testsuite/invalid.rs new file mode 100644 index 000000000..cb13b4e7d --- /dev/null +++ b/vendor/toml_edit-0.19.11/tests/testsuite/invalid.rs @@ -0,0 +1,211 @@ +#[test] +fn incomplete_inline_table_issue_296() { + let err = "native = {".parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq( + r#"TOML parse error at line 1, column 11 + | +1 | native = { + | ^ +invalid inline table +expected `}` +"#, + err.to_string(), + ); +} + +#[test] +fn bare_value_disallowed_issue_293() { + let err = "value=zzz".parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq( + r#"TOML parse error at line 1, column 7 + | +1 | value=zzz + | ^ +invalid string +expected `"`, `'` +"#, + err.to_string(), + ); +} + +#[test] +fn bare_value_in_array_disallowed_issue_293() { + let err = "value=[zzz]".parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq( + r#"TOML parse error at line 1, column 8 + | +1 | value=[zzz] + | ^ +invalid array +expected `]` +"#, + err.to_string(), + ); +} + +#[test] +fn duplicate_table_after_dotted_key_issue_509() { + let err = " +[dependencies.foo] +version = \"0.16\" + +[dependencies] +libc = \"0.2\" + +[dependencies] +rand = \"0.3.14\" +" + .parse::<toml_edit::Document>() + .unwrap_err(); + snapbox::assert_eq( + r#"TOML parse error at line 8, column 1 + | +8 | [dependencies] + | ^ +invalid table header +duplicate key `dependencies` in document root +"#, + err.to_string(), + ); +} + +#[test] +fn bad() { + let toml_input = "a = 01"; + let expected_err = "\ +TOML parse error at line 1, column 6 + | +1 | a = 01 + | ^ +expected newline, `#` +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = 1__1"; + let expected_err = "\ +TOML parse error at line 1, column 7 + | +1 | a = 1__1 + | ^ +invalid integer +expected digit +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = 1_"; + let expected_err = "\ +TOML parse error at line 1, column 7 + | +1 | a = 1_ + | ^ +invalid integer +expected digit +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "''"; + let expected_err = "\ +TOML parse error at line 1, column 3 + | +1 | '' + | ^ +expected `.`, `=` +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = 9e99999"; + let expected_err = "\ +TOML parse error at line 1, column 5 + | +1 | a = 9e99999 + | ^ +invalid floating-point number +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = \"\u{7f}\""; + let expected_err = "\ +TOML parse error at line 1, column 6 + | +1 | a = \"\u{7f}\" + | ^ +invalid basic string +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = '\u{7f}'"; + let expected_err = "\ +TOML parse error at line 1, column 6 + | +1 | a = '\u{7f}' + | ^ +invalid literal string +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = -0x1"; + let expected_err = "\ +TOML parse error at line 1, column 7 + | +1 | a = -0x1 + | ^ +expected newline, `#` +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = 0x-1"; + let expected_err = "\ +TOML parse error at line 1, column 7 + | +1 | a = 0x-1 + | ^ +invalid hexadecimal integer +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + // Dotted keys. + let toml_input = "a.b.c = 1 + a.b = 2 + "; + let expected_err = "\ +TOML parse error at line 2, column 10 + | +2 | a.b = 2 + | ^ +duplicate key `b` in document root +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = 1 + a.b = 2"; + let expected_err = "\ +TOML parse error at line 2, column 10 + | +2 | a.b = 2 + | ^ +dotted key `a` attempted to extend non-table type (integer) +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); + + let toml_input = "a = {k1 = 1, k1.name = \"joe\"}"; + let expected_err = "\ +TOML parse error at line 1, column 6 + | +1 | a = {k1 = 1, k1.name = \"joe\"} + | ^ +dotted key `k1` attempted to extend non-table type (integer) +"; + let err = toml_input.parse::<toml_edit::Document>().unwrap_err(); + snapbox::assert_eq(expected_err, err.to_string()); +} |