diff options
Diffstat (limited to 'vendor/basic-toml/tests/datetime.rs')
-rw-r--r-- | vendor/basic-toml/tests/datetime.rs | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/vendor/basic-toml/tests/datetime.rs b/vendor/basic-toml/tests/datetime.rs new file mode 100644 index 000000000..0672a3ba7 --- /dev/null +++ b/vendor/basic-toml/tests/datetime.rs @@ -0,0 +1,142 @@ +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" + ); +} |