diff options
| author | Mitsunori Komatsu <komamitsu@gmail.com> | 2016-05-31 01:53:14 +0900 |
|---|---|---|
| committer | Mitsunori Komatsu <komamitsu@gmail.com> | 2016-06-21 15:14:15 +0900 |
| commit | 45a63d3ff611b1412f9d811cd328b648bada5ca2 (patch) | |
| tree | 9a2e08ee3abaadbc93c50d08929b2ab7b1f249ac | |
| parent | 4ba60aba387b19267cace9759d9cf14682b72871 (diff) | |
| download | rust-45a63d3ff611b1412f9d811cd328b648bada5ca2.tar.gz rust-45a63d3ff611b1412f9d811cd328b648bada5ca2.zip | |
Add message argument to `assert_eq` macro
| -rw-r--r-- | src/libcore/macros.rs | 13 | ||||
| -rw-r--r-- | src/test/run-pass/assert-eq-macro-success.rs | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/libcore/macros.rs b/src/libcore/macros.rs index a40608b0762..376d2792c44 100644 --- a/src/libcore/macros.rs +++ b/src/libcore/macros.rs @@ -94,7 +94,18 @@ macro_rules! assert_eq { } } } - }) + }); + ($left:expr , $right:expr, $($arg:tt)*) => ({ + match (&($left), &($right)) { + (left_val, right_val) => { + if !(*left_val == *right_val) { + panic!("assertion failed: `(left == right)` \ + (left: `{:?}`, right: `{:?}`): {}", left_val, right_val, + format_args!($($arg)*)) + } + } + } + }); } /// Ensure that a boolean expression is `true` at runtime. diff --git a/src/test/run-pass/assert-eq-macro-success.rs b/src/test/run-pass/assert-eq-macro-success.rs index 9662e1ff33d..3110e22d5da 100644 --- a/src/test/run-pass/assert-eq-macro-success.rs +++ b/src/test/run-pass/assert-eq-macro-success.rs @@ -16,4 +16,7 @@ pub fn main() { assert_eq!("abc".to_string(),"abc".to_string()); assert_eq!(Box::new(Point{x:34}),Box::new(Point{x:34})); assert_eq!(&Point{x:34},&Point{x:34}); + assert_eq!(42, 42, "foo bar"); + assert_eq!(42, 42, "a {} c", "b"); + assert_eq!(42, 42, "{x}, {y}, {z}", x = 1, y = 2, z = 3); } |
