diff options
author | Alex Crichton <alex@alexcrichton.com> | 2019-07-29 09:06:35 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-29 09:06:35 -0500 |
commit | 5c6c3750727515fa4fc5bc3bc653293f5293f2c6 (patch) | |
tree | a043f6de866915df978bf7c166b7261b3c5d6335 /test-suite/tests/datetime.rs | |
parent | 844a1a4651d6b77a5b48159348d9cccbd8f4c88f (diff) | |
parent | 3d08775266eb1979956b03add38e6bd4824f521a (diff) | |
download | milf-rs-5c6c3750727515fa4fc5bc3bc653293f5293f2c6.tar.gz milf-rs-5c6c3750727515fa4fc5bc3bc653293f5293f2c6.zip |
Merge pull request #313 from zertosh/show-col-in-errors
Show "column" in Error messages
Diffstat (limited to 'test-suite/tests/datetime.rs')
-rw-r--r-- | test-suite/tests/datetime.rs | 108 |
1 files changed, 79 insertions, 29 deletions
diff --git a/test-suite/tests/datetime.rs b/test-suite/tests/datetime.rs index d6128b0..4855f54 100644 --- a/test-suite/tests/datetime.rs +++ b/test-suite/tests/datetime.rs @@ -2,13 +2,20 @@ extern crate toml; use std::str::FromStr; -use toml::Value; +macro_rules! bad { + ($toml:expr, $msg:expr) => { + match $toml.parse::<toml::Value>() { + Ok(s) => panic!("parsed to: {:#?}", s), + Err(e) => assert_eq!(e.to_string(), $msg), + } + }; +} #[test] fn times() { fn dogood(s: &str, serialized: &str) { let to_parse = format!("foo = {}", s); - let value = Value::from_str(&to_parse).unwrap(); + let value = toml::Value::from_str(&to_parse).unwrap(); assert_eq!(value["foo"].as_datetime().unwrap().to_string(), serialized); } fn good(s: &str) { @@ -35,32 +42,75 @@ fn times() { #[test] fn bad_times() { - fn bad(s: &str) { - let to_parse = format!("foo = {}", s); - assert!(Value::from_str(&to_parse).is_err()); - } - - bad("199-09-09"); - bad("199709-09"); - bad("1997-9-09"); - bad("1997-09-9"); - bad("1997-09-0909:09:09"); - bad("1997-09-09T09:09:09."); - bad("T"); - bad("T."); - bad("TZ"); - bad("1997-09-09T09:09:09.09+"); - bad("1997-09-09T09:09:09.09+09"); - bad("1997-09-09T09:09:09.09+09:9"); - bad("1997-09-09T09:09:09.09+0909"); - bad("1997-09-09T09:09:09.09-"); - bad("1997-09-09T09:09:09.09-09"); - bad("1997-09-09T09:09:09.09-09:9"); - bad("1997-09-09T09:09:09.09-0909"); + bad!("foo = 199-09-09", "failed to parse datetime for key `foo`"); + bad!("foo = 199709-09", "failed to parse datetime for key `foo`"); + bad!("foo = 1997-9-09", "failed to parse datetime for key `foo`"); + bad!("foo = 1997-09-9", "failed to parse datetime for key `foo`"); + bad!( + "foo = 1997-09-0909:09:09", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T09:09:09.", + "invalid date at line 1 column 7" + ); + bad!("foo = T", "failed to parse datetime for key `foo`"); + bad!( + "foo = T.", + "expected newline, found a period at line 1 column 8" + ); + bad!("foo = TZ", "failed to parse datetime for key `foo`"); + bad!( + "foo = 1997-09-09T09:09:09.09+", + "invalid date at line 1 column 7" + ); + bad!( + "foo = 1997-09-09T09:09:09.09+09", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T09:09:09.09+09:9", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T09:09:09.09+0909", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T09:09:09.09-", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T09:09:09.09-09", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T09:09:09.09-09:9", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T09:09:09.09-0909", + "failed to parse datetime for key `foo`" + ); - bad("1997-00-09T09:09:09.09Z"); - bad("1997-09-00T09:09:09.09Z"); - bad("1997-09-09T30:09:09.09Z"); - bad("1997-09-09T12:69:09.09Z"); - bad("1997-09-09T12:09:69.09Z"); + bad!( + "foo = 1997-00-09T09:09:09.09Z", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-00T09:09:09.09Z", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T30:09:09.09Z", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T12:69:09.09Z", + "failed to parse datetime for key `foo`" + ); + bad!( + "foo = 1997-09-09T12:09:69.09Z", + "failed to parse datetime for key `foo`" + ); } |