142 lines
3.8 KiB
Rust
142 lines
3.8 KiB
Rust
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 times() {
|
|
fn multi_bad(s: &str, msg: &str) {
|
|
bad!(s, msg);
|
|
bad!(&s.replace('T', " "), msg);
|
|
bad!(&s.replace('T', "t"), msg);
|
|
bad!(&s.replace('Z', "z"), msg);
|
|
}
|
|
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09Z",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09+09:09",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09-09:09",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad("foo = 1997-09-09", "invalid number at line 1 column 7");
|
|
bad!("foo = 1997-09-09 ", "invalid number at line 1 column 7");
|
|
bad!(
|
|
"foo = 1997-09-09 # comment",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
multi_bad("foo = 09:09:09", "invalid number at line 1 column 8");
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09.09Z",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09.09+09:09",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09.09-09:09",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad(
|
|
"foo = 1997-09-09T09:09:09.09",
|
|
"invalid number at line 1 column 7",
|
|
);
|
|
multi_bad("foo = 09:09:09.09", "invalid number at line 1 column 8");
|
|
}
|
|
|
|
#[test]
|
|
fn bad_times() {
|
|
bad!("foo = 199-09-09", "invalid number at line 1 column 7");
|
|
bad!("foo = 199709-09", "invalid number at line 1 column 7");
|
|
bad!("foo = 1997-9-09", "invalid number at line 1 column 7");
|
|
bad!("foo = 1997-09-9", "invalid number at line 1 column 7");
|
|
bad!(
|
|
"foo = 1997-09-0909:09:09",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = T",
|
|
"invalid TOML value, did you mean to use a quoted string? at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = T.",
|
|
"invalid TOML value, did you mean to use a quoted string? at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = TZ",
|
|
"invalid TOML value, did you mean to use a quoted string? at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09+",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09+09",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09+09:9",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09+0909",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09-",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09-09",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09-09:9",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T09:09:09.09-0909",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
|
|
bad!(
|
|
"foo = 1997-00-09T09:09:09.09Z",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-00T09:09:09.09Z",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T30:09:09.09Z",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T12:69:09.09Z",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
bad!(
|
|
"foo = 1997-09-09T12:09:69.09Z",
|
|
"invalid number at line 1 column 7"
|
|
);
|
|
}
|