summaryrefslogtreecommitdiffstats
path: root/vendor/basic-toml/tests/invalid-misc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/basic-toml/tests/invalid-misc.rs')
-rw-r--r--vendor/basic-toml/tests/invalid-misc.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/basic-toml/tests/invalid-misc.rs b/vendor/basic-toml/tests/invalid-misc.rs
new file mode 100644
index 000000000..a02bf045a
--- /dev/null
+++ b/vendor/basic-toml/tests/invalid-misc.rs
@@ -0,0 +1,48 @@
+use serde_json::Value;
+
+macro_rules! bad {
+ ($toml:expr, $msg:expr) => {
+ match basic_toml::from_str::<Value>($toml) {
+ Ok(s) => panic!("parsed to: {:#?}", s),
+ Err(e) => assert_eq!(e.to_string(), $msg),
+ }
+ };
+}
+
+#[test]
+fn bad() {
+ bad!("a = 01", "invalid number at line 1 column 6");
+ bad!("a = 1__1", "invalid number at line 1 column 5");
+ bad!("a = 1_", "invalid number at line 1 column 5");
+ bad!("''", "expected an equals, found eof at line 1 column 3");
+ bad!("a = 9e99999", "invalid number at line 1 column 5");
+
+ bad!(
+ "a = \"\u{7f}\"",
+ "invalid character in string: `\\u{7f}` at line 1 column 6"
+ );
+ bad!(
+ "a = '\u{7f}'",
+ "invalid character in string: `\\u{7f}` at line 1 column 6"
+ );
+
+ bad!("a = -0x1", "invalid number at line 1 column 5");
+ bad!("a = 0x-1", "invalid number at line 1 column 7");
+
+ // Dotted keys.
+ bad!(
+ "a.b.c = 1
+ a.b = 2
+ ",
+ "duplicate key: `b` for key `a` at line 2 column 12"
+ );
+ bad!(
+ "a = 1
+ a.b = 2",
+ "dotted key attempted to extend non-table type at line 1 column 5"
+ );
+ bad!(
+ "a = {k1 = 1, k1.name = \"joe\"}",
+ "dotted key attempted to extend non-table type at line 1 column 11"
+ );
+}