#[test] fn incomplete_inline_table_issue_296() { let err = "native = {".parse::().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::().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::().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::() .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::().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::().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::().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::().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::().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::().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::().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::().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::().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::().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::().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::().unwrap_err(); snapbox::assert_eq(expected_err, err.to_string()); }