From 2a9df8afb951592252d5319c646fdd99ec9891c3 Mon Sep 17 00:00:00 2001 From: Andres Suarez Date: Sun, 28 Jul 2019 16:56:22 +0000 Subject: Fully expand error messages in tests --- test-suite/tests/datetime.rs | 99 +++++++++++++++++++++++++++++++------------- 1 file changed, 70 insertions(+), 29 deletions(-) (limited to 'test-suite/tests/datetime.rs') diff --git a/test-suite/tests/datetime.rs b/test-suite/tests/datetime.rs index d6128b0..7434076 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::() { + 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,66 @@ 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"); + bad!("foo = T", "failed to parse datetime for key `foo`"); + bad!("foo = T.", "expected newline, found a period at line 1"); + bad!("foo = TZ", "failed to parse datetime for key `foo`"); + bad!("foo = 1997-09-09T09:09:09.09+", "invalid date at line 1"); + 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`" + ); } -- cgit v1.2.3 From 3d08775266eb1979956b03add38e6bd4824f521a Mon Sep 17 00:00:00 2001 From: Andres Suarez Date: Sun, 28 Jul 2019 17:40:49 +0000 Subject: Show "column" in Error messages --- test-suite/tests/datetime.rs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'test-suite/tests/datetime.rs') diff --git a/test-suite/tests/datetime.rs b/test-suite/tests/datetime.rs index 7434076..4855f54 100644 --- a/test-suite/tests/datetime.rs +++ b/test-suite/tests/datetime.rs @@ -50,11 +50,20 @@ fn bad_times() { "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"); + 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"); + 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"); + 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`" -- cgit v1.2.3