diff options
| author | bors <bors@rust-lang.org> | 2013-03-21 15:24:54 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-03-21 15:24:54 -0700 |
| commit | ec8345b18abef2fba6153ae999446e3f05b8275a (patch) | |
| tree | 39624c9607433eca52a2fabb1cebcc567499a858 /src/libsyntax/ext | |
| parent | ed25a674ac6bc53c9ee9f8c1cce21541f6811d4b (diff) | |
| parent | 3cd65c233d750cd37982911602db79d29e6f5874 (diff) | |
| download | rust-ec8345b18abef2fba6153ae999446e3f05b8275a.tar.gz rust-ec8345b18abef2fba6153ae999446e3f05b8275a.zip | |
auto merge of #5407 : jbclements/rust/add-assert-eq-macro, r=jbclements
Adds an assert_eq! macro that asserts that its two arguments are equal. Error messages can therefore be somewhat more informative than a simple assert, because the error message includes "expected" and "given" values.
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/auto_encode.rs | 3 | ||||
| -rw-r--r-- | src/libsyntax/ext/base.rs | 25 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 15 |
3 files changed, 25 insertions, 18 deletions
diff --git a/src/libsyntax/ext/auto_encode.rs b/src/libsyntax/ext/auto_encode.rs index 294174dc8f9..3ab95258f03 100644 --- a/src/libsyntax/ext/auto_encode.rs +++ b/src/libsyntax/ext/auto_encode.rs @@ -1202,7 +1202,6 @@ fn mk_enum_deser_body( mod test { use std::serialize::Encodable; use std::serialize::Encoder; - use util::testing::*; // just adding the ones I want to test, for now: #[deriving_eq] @@ -1321,7 +1320,7 @@ mod test { } #[test] fn encode_enum_test () { - check_equal (to_call_log(Book(34,44)), + assert_eq!(to_call_log(Book(34,44)), ~[CallToEmitEnum (~"Written"), CallToEmitEnumVariant (~"Book",0,2), CallToEmitEnumVariantArg (0), diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 447ca71dc6b..34e4d8c73e7 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -509,7 +509,6 @@ impl <K: Eq + Hash + IterBytes ,V: Copy> MapChain<K,V>{ #[cfg(test)] mod test { use super::MapChain; - use util::testing::check_equal; use core::hashmap::linear::LinearMap; #[test] fn testenv () { @@ -517,23 +516,23 @@ mod test { a.insert (@~"abc",@15); let m = MapChain::new(~a); m.insert (@~"def",@16); - // FIXME: #4492 (ICE) check_equal(m.find(&@~"abc"),Some(@15)); - // .... check_equal(m.find(&@~"def"),Some(@16)); - check_equal(*(m.find(&@~"abc").get()),15); - check_equal(*(m.find(&@~"def").get()),16); + // FIXME: #4492 (ICE) assert_eq!(m.find(&@~"abc"),Some(@15)); + // .... assert_eq!(m.find(&@~"def"),Some(@16)); + assert_eq!(*(m.find(&@~"abc").get()),15); + assert_eq!(*(m.find(&@~"def").get()),16); let n = m.push_frame(); // old bindings are still present: - check_equal(*(n.find(&@~"abc").get()),15); - check_equal(*(n.find(&@~"def").get()),16); + assert_eq!(*(n.find(&@~"abc").get()),15); + assert_eq!(*(n.find(&@~"def").get()),16); n.insert (@~"def",@17); // n shows the new binding - check_equal(*(n.find(&@~"abc").get()),15); - check_equal(*(n.find(&@~"def").get()),17); + assert_eq!(*(n.find(&@~"abc").get()),15); + assert_eq!(*(n.find(&@~"def").get()),17); // ... but m still has the old ones - // FIXME: #4492: check_equal(m.find(&@~"abc"),Some(@15)); - // FIXME: #4492: check_equal(m.find(&@~"def"),Some(@16)); - check_equal(*(m.find(&@~"abc").get()),15); - check_equal(*(m.find(&@~"def").get()),16); + // FIXME: #4492: assert_eq!(m.find(&@~"abc"),Some(@15)); + // FIXME: #4492: assert_eq!(m.find(&@~"def"),Some(@16)); + assert_eq!(*(m.find(&@~"abc").get()),15); + assert_eq!(*(m.find(&@~"def").get()),16); } } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index ad05e2f21e6..27b35b37849 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -464,6 +464,15 @@ pub fn core_macros() -> ~str { } ) + macro_rules! assert_eq ( + ($given:expr , $expected:expr) => + ({let given_val = $given; + let expected_val = $expected; + // check both directions of equality.... + if !((given_val == expected_val) && (expected_val == given_val)) { + fail!(fmt!(\"expected: %?, given: %?\",expected_val,given_val)); + }})) + macro_rules! condition ( { $c:ident: $in:ty -> $out:ty; } => { @@ -481,6 +490,7 @@ pub fn core_macros() -> ~str { } ) + }"; } @@ -547,7 +557,6 @@ mod test { use codemap; use codemap::spanned; use parse; - use util::testing::check_equal; use core::option::{None, Some}; // make sure that fail! is present @@ -634,9 +643,9 @@ mod test { let attr2 = make_dummy_attr (@~"bar"); let escape_attr = make_dummy_attr (@~"macro_escape"); let attrs1 = ~[attr1, escape_attr, attr2]; - check_equal (contains_macro_escape (attrs1),true); + assert_eq!(contains_macro_escape (attrs1),true); let attrs2 = ~[attr1,attr2]; - check_equal (contains_macro_escape (attrs2),false); + assert_eq!(contains_macro_escape (attrs2),false); } // make a "meta_word" outer attribute with the given name |
