1
Fork 0

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.
This commit is contained in:
bors 2013-03-21 15:24:54 -07:00
commit ec8345b18a
18 changed files with 279 additions and 296 deletions

View file

@ -288,16 +288,16 @@ fn test_is_whitespace() {
#[test] #[test]
fn test_to_digit() { fn test_to_digit() {
fail_unless!(to_digit('0', 10u) == Some(0u)); assert_eq!(to_digit('0', 10u), Some(0u));
fail_unless!(to_digit('1', 2u) == Some(1u)); assert_eq!(to_digit('1', 2u), Some(1u));
fail_unless!(to_digit('2', 3u) == Some(2u)); assert_eq!(to_digit('2', 3u), Some(2u));
fail_unless!(to_digit('9', 10u) == Some(9u)); assert_eq!(to_digit('9', 10u), Some(9u));
fail_unless!(to_digit('a', 16u) == Some(10u)); assert_eq!(to_digit('a', 16u), Some(10u));
fail_unless!(to_digit('A', 16u) == Some(10u)); assert_eq!(to_digit('A', 16u), Some(10u));
fail_unless!(to_digit('b', 16u) == Some(11u)); assert_eq!(to_digit('b', 16u), Some(11u));
fail_unless!(to_digit('B', 16u) == Some(11u)); assert_eq!(to_digit('B', 16u), Some(11u));
fail_unless!(to_digit('z', 36u) == Some(35u)); assert_eq!(to_digit('z', 36u), Some(35u));
fail_unless!(to_digit('Z', 36u) == Some(35u)); assert_eq!(to_digit('Z', 36u), Some(35u));
fail_unless!(to_digit(' ', 10u).is_none()); fail_unless!(to_digit(' ', 10u).is_none());
fail_unless!(to_digit('$', 36u).is_none()); fail_unless!(to_digit('$', 36u).is_none());
@ -321,28 +321,28 @@ fn test_is_digit() {
#[test] #[test]
fn test_escape_default() { fn test_escape_default() {
fail_unless!(escape_default('\n') == ~"\\n"); assert_eq!(escape_default('\n'), ~"\\n");
fail_unless!(escape_default('\r') == ~"\\r"); assert_eq!(escape_default('\r'), ~"\\r");
fail_unless!(escape_default('\'') == ~"\\'"); assert_eq!(escape_default('\''), ~"\\'");
fail_unless!(escape_default('"') == ~"\\\""); assert_eq!(escape_default('"'), ~"\\\"");
fail_unless!(escape_default(' ') == ~" "); assert_eq!(escape_default(' '), ~" ");
fail_unless!(escape_default('a') == ~"a"); assert_eq!(escape_default('a'), ~"a");
fail_unless!(escape_default('~') == ~"~"); assert_eq!(escape_default('~'), ~"~");
fail_unless!(escape_default('\x00') == ~"\\x00"); assert_eq!(escape_default('\x00'), ~"\\x00");
fail_unless!(escape_default('\x1f') == ~"\\x1f"); assert_eq!(escape_default('\x1f'), ~"\\x1f");
fail_unless!(escape_default('\x7f') == ~"\\x7f"); assert_eq!(escape_default('\x7f'), ~"\\x7f");
fail_unless!(escape_default('\xff') == ~"\\xff"); assert_eq!(escape_default('\xff'), ~"\\xff");
fail_unless!(escape_default('\u011b') == ~"\\u011b"); assert_eq!(escape_default('\u011b'), ~"\\u011b");
fail_unless!(escape_default('\U0001d4b6') == ~"\\U0001d4b6"); assert_eq!(escape_default('\U0001d4b6'), ~"\\U0001d4b6");
} }
#[test] #[test]
fn test_escape_unicode() { fn test_escape_unicode() {
fail_unless!(escape_unicode('\x00') == ~"\\x00"); assert_eq!(escape_unicode('\x00'), ~"\\x00");
fail_unless!(escape_unicode('\n') == ~"\\x0a"); assert_eq!(escape_unicode('\n'), ~"\\x0a");
fail_unless!(escape_unicode(' ') == ~"\\x20"); assert_eq!(escape_unicode(' '), ~"\\x20");
fail_unless!(escape_unicode('a') == ~"\\x61"); assert_eq!(escape_unicode('a'), ~"\\x61");
fail_unless!(escape_unicode('\u011b') == ~"\\u011b"); assert_eq!(escape_unicode('\u011b'), ~"\\u011b");
fail_unless!(escape_unicode('\U0001d4b6') == ~"\\U0001d4b6"); assert_eq!(escape_unicode('\U0001d4b6'), ~"\\U0001d4b6");
} }

View file

@ -172,10 +172,10 @@ pub pure fn max<T:Ord>(v1: T, v2: T) -> T {
mod test { mod test {
#[test] #[test]
fn test_int() { fn test_int() {
fail_unless!(5.cmp(&10) == Less); assert_eq!(5.cmp(&10), Less);
fail_unless!(10.cmp(&5) == Greater); assert_eq!(10.cmp(&5), Greater);
fail_unless!(5.cmp(&5) == Equal); assert_eq!(5.cmp(&5), Equal);
fail_unless!((-5).cmp(&12) == Less); assert_eq!((-5).cmp(&12), Less);
fail_unless!(12.cmp(-5) == Greater); assert_eq!(12.cmp(-5), Greater);
} }
} }

View file

@ -555,15 +555,15 @@ mod tests {
let ab = from_vec(~[a,b]); let ab = from_vec(~[a,b]);
let cd = from_vec(~[c,d]); let cd = from_vec(~[c,d]);
let abcd = concat(concat(from_vec(~[ab,cd]))); let abcd = concat(concat(from_vec(~[ab,cd])));
abcd.assert_consistent(); fail_unless!(abcd.len() == 8); abcd.assert_consistent(); assert_eq!(abcd.len(), 8);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 1); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 1);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 2); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 2);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 3); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 3);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 4); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 4);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 5); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 5);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 6); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 6);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 7); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 7);
abcd.assert_consistent(); fail_unless!(abcd.pop().get() == 8); abcd.assert_consistent(); assert_eq!(abcd.pop().get(), 8);
abcd.assert_consistent(); fail_unless!(abcd.is_empty()); abcd.assert_consistent(); fail_unless!(abcd.is_empty());
} }
#[test] #[test]
@ -571,15 +571,15 @@ mod tests {
let a = from_vec(~[1,2,3]); let a = from_vec(~[1,2,3]);
let b = from_vec(~[4,5,6]); let b = from_vec(~[4,5,6]);
a.append(b); a.append(b);
fail_unless!(a.len() == 6); assert_eq!(a.len(), 6);
fail_unless!(b.len() == 0); assert_eq!(b.len(), 0);
b.assert_consistent(); b.assert_consistent();
a.assert_consistent(); fail_unless!(a.pop().get() == 1); a.assert_consistent(); assert_eq!(a.pop().get(), 1);
a.assert_consistent(); fail_unless!(a.pop().get() == 2); a.assert_consistent(); assert_eq!(a.pop().get(), 2);
a.assert_consistent(); fail_unless!(a.pop().get() == 3); a.assert_consistent(); assert_eq!(a.pop().get(), 3);
a.assert_consistent(); fail_unless!(a.pop().get() == 4); a.assert_consistent(); assert_eq!(a.pop().get(), 4);
a.assert_consistent(); fail_unless!(a.pop().get() == 5); a.assert_consistent(); assert_eq!(a.pop().get(), 5);
a.assert_consistent(); fail_unless!(a.pop().get() == 6); a.assert_consistent(); assert_eq!(a.pop().get(), 6);
a.assert_consistent(); fail_unless!(a.is_empty()); a.assert_consistent(); fail_unless!(a.is_empty());
} }
#[test] #[test]
@ -587,12 +587,12 @@ mod tests {
let a = from_vec(~[1,2,3]); let a = from_vec(~[1,2,3]);
let b = DList::<int>(); let b = DList::<int>();
a.append(b); a.append(b);
fail_unless!(a.len() == 3); assert_eq!(a.len(), 3);
fail_unless!(b.len() == 0); assert_eq!(b.len(), 0);
b.assert_consistent(); b.assert_consistent();
a.assert_consistent(); fail_unless!(a.pop().get() == 1); a.assert_consistent(); assert_eq!(a.pop().get(), 1);
a.assert_consistent(); fail_unless!(a.pop().get() == 2); a.assert_consistent(); assert_eq!(a.pop().get(), 2);
a.assert_consistent(); fail_unless!(a.pop().get() == 3); a.assert_consistent(); assert_eq!(a.pop().get(), 3);
a.assert_consistent(); fail_unless!(a.is_empty()); a.assert_consistent(); fail_unless!(a.is_empty());
} }
#[test] #[test]
@ -600,12 +600,12 @@ mod tests {
let a = DList::<int>(); let a = DList::<int>();
let b = from_vec(~[4,5,6]); let b = from_vec(~[4,5,6]);
a.append(b); a.append(b);
fail_unless!(a.len() == 3); assert_eq!(a.len(), 3);
fail_unless!(b.len() == 0); assert_eq!(b.len(), 0);
b.assert_consistent(); b.assert_consistent();
a.assert_consistent(); fail_unless!(a.pop().get() == 4); a.assert_consistent(); assert_eq!(a.pop().get(), 4);
a.assert_consistent(); fail_unless!(a.pop().get() == 5); a.assert_consistent(); assert_eq!(a.pop().get(), 5);
a.assert_consistent(); fail_unless!(a.pop().get() == 6); a.assert_consistent(); assert_eq!(a.pop().get(), 6);
a.assert_consistent(); fail_unless!(a.is_empty()); a.assert_consistent(); fail_unless!(a.is_empty());
} }
#[test] #[test]
@ -613,8 +613,8 @@ mod tests {
let a = DList::<int>(); let a = DList::<int>();
let b = DList::<int>(); let b = DList::<int>();
a.append(b); a.append(b);
fail_unless!(a.len() == 0); assert_eq!(a.len(), 0);
fail_unless!(b.len() == 0); assert_eq!(b.len(), 0);
b.assert_consistent(); b.assert_consistent();
a.assert_consistent(); a.assert_consistent();
} }
@ -637,34 +637,34 @@ mod tests {
let a = from_vec(~[1,2,3]); let a = from_vec(~[1,2,3]);
let b = from_vec(~[4,5,6]); let b = from_vec(~[4,5,6]);
b.prepend(a); b.prepend(a);
fail_unless!(a.len() == 0); assert_eq!(a.len(), 0);
fail_unless!(b.len() == 6); assert_eq!(b.len(), 6);
a.assert_consistent(); a.assert_consistent();
b.assert_consistent(); fail_unless!(b.pop().get() == 1); b.assert_consistent(); assert_eq!(b.pop().get(), 1);
b.assert_consistent(); fail_unless!(b.pop().get() == 2); b.assert_consistent(); assert_eq!(b.pop().get(), 2);
b.assert_consistent(); fail_unless!(b.pop().get() == 3); b.assert_consistent(); assert_eq!(b.pop().get(), 3);
b.assert_consistent(); fail_unless!(b.pop().get() == 4); b.assert_consistent(); assert_eq!(b.pop().get(), 4);
b.assert_consistent(); fail_unless!(b.pop().get() == 5); b.assert_consistent(); assert_eq!(b.pop().get(), 5);
b.assert_consistent(); fail_unless!(b.pop().get() == 6); b.assert_consistent(); assert_eq!(b.pop().get(), 6);
b.assert_consistent(); fail_unless!(b.is_empty()); b.assert_consistent(); fail_unless!(b.is_empty());
} }
#[test] #[test]
pub fn test_dlist_reverse() { pub fn test_dlist_reverse() {
let a = from_vec(~[5,4,3,2,1]); let a = from_vec(~[5,4,3,2,1]);
a.reverse(); a.reverse();
fail_unless!(a.len() == 5); assert_eq!(a.len(), 5);
a.assert_consistent(); fail_unless!(a.pop().get() == 1); a.assert_consistent(); assert_eq!(a.pop().get(), 1);
a.assert_consistent(); fail_unless!(a.pop().get() == 2); a.assert_consistent(); assert_eq!(a.pop().get(), 2);
a.assert_consistent(); fail_unless!(a.pop().get() == 3); a.assert_consistent(); assert_eq!(a.pop().get(), 3);
a.assert_consistent(); fail_unless!(a.pop().get() == 4); a.assert_consistent(); assert_eq!(a.pop().get(), 4);
a.assert_consistent(); fail_unless!(a.pop().get() == 5); a.assert_consistent(); assert_eq!(a.pop().get(), 5);
a.assert_consistent(); fail_unless!(a.is_empty()); a.assert_consistent(); fail_unless!(a.is_empty());
} }
#[test] #[test]
pub fn test_dlist_reverse_empty() { pub fn test_dlist_reverse_empty() {
let a = DList::<int>(); let a = DList::<int>();
a.reverse(); a.reverse();
fail_unless!(a.len() == 0); assert_eq!(a.len(), 0);
a.assert_consistent(); a.assert_consistent();
} }
#[test] #[test]
@ -675,20 +675,20 @@ mod tests {
a.insert_before(3, nobe); a.insert_before(3, nobe);
} }
} }
fail_unless!(a.len() == 6); assert_eq!(a.len(), 6);
a.assert_consistent(); fail_unless!(a.pop().get() == 1); a.assert_consistent(); assert_eq!(a.pop().get(), 1);
a.assert_consistent(); fail_unless!(a.pop().get() == 2); a.assert_consistent(); assert_eq!(a.pop().get(), 2);
a.assert_consistent(); fail_unless!(a.pop().get() == 3); a.assert_consistent(); assert_eq!(a.pop().get(), 3);
a.assert_consistent(); fail_unless!(a.pop().get() == 4); a.assert_consistent(); assert_eq!(a.pop().get(), 4);
a.assert_consistent(); fail_unless!(a.pop().get() == 3); a.assert_consistent(); assert_eq!(a.pop().get(), 3);
a.assert_consistent(); fail_unless!(a.pop().get() == 5); a.assert_consistent(); assert_eq!(a.pop().get(), 5);
a.assert_consistent(); fail_unless!(a.is_empty()); a.assert_consistent(); fail_unless!(a.is_empty());
} }
#[test] #[test]
pub fn test_dlist_clear() { pub fn test_dlist_clear() {
let a = from_vec(~[5,4,3,2,1]); let a = from_vec(~[5,4,3,2,1]);
a.clear(); a.clear();
fail_unless!(a.len() == 0); assert_eq!(a.len(), 0);
a.assert_consistent(); a.assert_consistent();
} }
#[test] #[test]
@ -701,33 +701,33 @@ mod tests {
#[test] #[test]
pub fn test_dlist_head_tail() { pub fn test_dlist_head_tail() {
let l = from_vec(~[1,2,3]); let l = from_vec(~[1,2,3]);
fail_unless!(l.head() == 1); assert_eq!(l.head(), 1);
fail_unless!(l.tail() == 3); assert_eq!(l.tail(), 3);
fail_unless!(l.len() == 3); assert_eq!(l.len(), 3);
} }
#[test] #[test]
pub fn test_dlist_pop() { pub fn test_dlist_pop() {
let l = from_vec(~[1,2,3]); let l = from_vec(~[1,2,3]);
fail_unless!(l.pop().get() == 1); assert_eq!(l.pop().get(), 1);
fail_unless!(l.tail() == 3); assert_eq!(l.tail(), 3);
fail_unless!(l.head() == 2); assert_eq!(l.head(), 2);
fail_unless!(l.pop().get() == 2); assert_eq!(l.pop().get(), 2);
fail_unless!(l.tail() == 3); assert_eq!(l.tail(), 3);
fail_unless!(l.head() == 3); assert_eq!(l.head(), 3);
fail_unless!(l.pop().get() == 3); assert_eq!(l.pop().get(), 3);
fail_unless!(l.is_empty()); fail_unless!(l.is_empty());
fail_unless!(l.pop().is_none()); fail_unless!(l.pop().is_none());
} }
#[test] #[test]
pub fn test_dlist_pop_tail() { pub fn test_dlist_pop_tail() {
let l = from_vec(~[1,2,3]); let l = from_vec(~[1,2,3]);
fail_unless!(l.pop_tail().get() == 3); assert_eq!(l.pop_tail().get(), 3);
fail_unless!(l.tail() == 2); assert_eq!(l.tail(), 2);
fail_unless!(l.head() == 1); assert_eq!(l.head(), 1);
fail_unless!(l.pop_tail().get() == 2); assert_eq!(l.pop_tail().get(), 2);
fail_unless!(l.tail() == 1); assert_eq!(l.tail(), 1);
fail_unless!(l.head() == 1); assert_eq!(l.head(), 1);
fail_unless!(l.pop_tail().get() == 1); assert_eq!(l.pop_tail().get(), 1);
fail_unless!(l.is_empty()); fail_unless!(l.is_empty());
fail_unless!(l.pop_tail().is_none()); fail_unless!(l.pop_tail().is_none());
} }
@ -735,34 +735,34 @@ mod tests {
pub fn test_dlist_push() { pub fn test_dlist_push() {
let l = DList::<int>(); let l = DList::<int>();
l.push(1); l.push(1);
fail_unless!(l.head() == 1); assert_eq!(l.head(), 1);
fail_unless!(l.tail() == 1); assert_eq!(l.tail(), 1);
l.push(2); l.push(2);
fail_unless!(l.head() == 1); assert_eq!(l.head(), 1);
fail_unless!(l.tail() == 2); assert_eq!(l.tail(), 2);
l.push(3); l.push(3);
fail_unless!(l.head() == 1); assert_eq!(l.head(), 1);
fail_unless!(l.tail() == 3); assert_eq!(l.tail(), 3);
fail_unless!(l.len() == 3); assert_eq!(l.len(), 3);
} }
#[test] #[test]
pub fn test_dlist_push_head() { pub fn test_dlist_push_head() {
let l = DList::<int>(); let l = DList::<int>();
l.push_head(3); l.push_head(3);
fail_unless!(l.head() == 3); assert_eq!(l.head(), 3);
fail_unless!(l.tail() == 3); assert_eq!(l.tail(), 3);
l.push_head(2); l.push_head(2);
fail_unless!(l.head() == 2); assert_eq!(l.head(), 2);
fail_unless!(l.tail() == 3); assert_eq!(l.tail(), 3);
l.push_head(1); l.push_head(1);
fail_unless!(l.head() == 1); assert_eq!(l.head(), 1);
fail_unless!(l.tail() == 3); assert_eq!(l.tail(), 3);
fail_unless!(l.len() == 3); assert_eq!(l.len(), 3);
} }
#[test] #[test]
pub fn test_dlist_foldl() { pub fn test_dlist_foldl() {
let l = from_vec(vec::from_fn(101, |x|x)); let l = from_vec(vec::from_fn(101, |x|x));
fail_unless!(iter::foldl(&l, 0, |accum,elem| *accum+*elem) == 5050); assert_eq!(iter::foldl(&l, 0, |accum,elem| *accum+*elem), 5050);
} }
#[test] #[test]
pub fn test_dlist_break_early() { pub fn test_dlist_break_early() {
@ -772,7 +772,7 @@ mod tests {
x += 1; x += 1;
if (*i == 3) { break; } if (*i == 3) { break; }
} }
fail_unless!(x == 3); assert_eq!(x, 3);
} }
#[test] #[test]
pub fn test_dlist_remove_head() { pub fn test_dlist_remove_head() {
@ -780,13 +780,13 @@ mod tests {
l.assert_consistent(); let one = l.push_n(1); l.assert_consistent(); let one = l.push_n(1);
l.assert_consistent(); let _two = l.push_n(2); l.assert_consistent(); let _two = l.push_n(2);
l.assert_consistent(); let _three = l.push_n(3); l.assert_consistent(); let _three = l.push_n(3);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); l.remove(one); l.assert_consistent(); l.remove(one);
l.assert_consistent(); fail_unless!(l.len() == 2); l.assert_consistent(); assert_eq!(l.len(), 2);
l.assert_consistent(); fail_unless!(l.head() == 2); l.assert_consistent(); assert_eq!(l.head(), 2);
l.assert_consistent(); fail_unless!(l.tail() == 3); l.assert_consistent(); assert_eq!(l.tail(), 3);
l.assert_consistent(); fail_unless!(l.pop().get() == 2); l.assert_consistent(); assert_eq!(l.pop().get(), 2);
l.assert_consistent(); fail_unless!(l.pop().get() == 3); l.assert_consistent(); assert_eq!(l.pop().get(), 3);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -795,13 +795,13 @@ mod tests {
l.assert_consistent(); let _one = l.push_n(1); l.assert_consistent(); let _one = l.push_n(1);
l.assert_consistent(); let two = l.push_n(2); l.assert_consistent(); let two = l.push_n(2);
l.assert_consistent(); let _three = l.push_n(3); l.assert_consistent(); let _three = l.push_n(3);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); l.remove(two); l.assert_consistent(); l.remove(two);
l.assert_consistent(); fail_unless!(l.len() == 2); l.assert_consistent(); assert_eq!(l.len(), 2);
l.assert_consistent(); fail_unless!(l.head() == 1); l.assert_consistent(); assert_eq!(l.head(), 1);
l.assert_consistent(); fail_unless!(l.tail() == 3); l.assert_consistent(); assert_eq!(l.tail(), 3);
l.assert_consistent(); fail_unless!(l.pop().get() == 1); l.assert_consistent(); assert_eq!(l.pop().get(), 1);
l.assert_consistent(); fail_unless!(l.pop().get() == 3); l.assert_consistent(); assert_eq!(l.pop().get(), 3);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -810,13 +810,13 @@ mod tests {
l.assert_consistent(); let _one = l.push_n(1); l.assert_consistent(); let _one = l.push_n(1);
l.assert_consistent(); let _two = l.push_n(2); l.assert_consistent(); let _two = l.push_n(2);
l.assert_consistent(); let three = l.push_n(3); l.assert_consistent(); let three = l.push_n(3);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); l.remove(three); l.assert_consistent(); l.remove(three);
l.assert_consistent(); fail_unless!(l.len() == 2); l.assert_consistent(); assert_eq!(l.len(), 2);
l.assert_consistent(); fail_unless!(l.head() == 1); l.assert_consistent(); assert_eq!(l.head(), 1);
l.assert_consistent(); fail_unless!(l.tail() == 2); l.assert_consistent(); assert_eq!(l.tail(), 2);
l.assert_consistent(); fail_unless!(l.pop().get() == 1); l.assert_consistent(); assert_eq!(l.pop().get(), 1);
l.assert_consistent(); fail_unless!(l.pop().get() == 2); l.assert_consistent(); assert_eq!(l.pop().get(), 2);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -825,14 +825,14 @@ mod tests {
l.assert_consistent(); let one = l.push_n(1); l.assert_consistent(); let one = l.push_n(1);
l.assert_consistent(); let two = l.push_n(2); l.assert_consistent(); let two = l.push_n(2);
l.assert_consistent(); let _three = l.push_n(3); l.assert_consistent(); let _three = l.push_n(3);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); l.remove(one); l.assert_consistent(); l.remove(one);
l.assert_consistent(); l.remove(two); l.assert_consistent(); l.remove(two);
// and through and through, the vorpal blade went snicker-snack // and through and through, the vorpal blade went snicker-snack
l.assert_consistent(); fail_unless!(l.len() == 1); l.assert_consistent(); assert_eq!(l.len(), 1);
l.assert_consistent(); fail_unless!(l.head() == 3); l.assert_consistent(); assert_eq!(l.head(), 3);
l.assert_consistent(); fail_unless!(l.tail() == 3); l.assert_consistent(); assert_eq!(l.tail(), 3);
l.assert_consistent(); fail_unless!(l.pop().get() == 3); l.assert_consistent(); assert_eq!(l.pop().get(), 3);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -841,13 +841,13 @@ mod tests {
l.assert_consistent(); let one = l.push_n(1); l.assert_consistent(); let one = l.push_n(1);
l.assert_consistent(); let _two = l.push_n(2); l.assert_consistent(); let _two = l.push_n(2);
l.assert_consistent(); let three = l.push_n(3); l.assert_consistent(); let three = l.push_n(3);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); l.remove(one); l.assert_consistent(); l.remove(one);
l.assert_consistent(); l.remove(three); l.assert_consistent(); l.remove(three);
l.assert_consistent(); fail_unless!(l.len() == 1); l.assert_consistent(); assert_eq!(l.len(), 1);
l.assert_consistent(); fail_unless!(l.head() == 2); l.assert_consistent(); assert_eq!(l.head(), 2);
l.assert_consistent(); fail_unless!(l.tail() == 2); l.assert_consistent(); assert_eq!(l.tail(), 2);
l.assert_consistent(); fail_unless!(l.pop().get() == 2); l.assert_consistent(); assert_eq!(l.pop().get(), 2);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -856,13 +856,13 @@ mod tests {
l.assert_consistent(); let _one = l.push_n(1); l.assert_consistent(); let _one = l.push_n(1);
l.assert_consistent(); let two = l.push_n(2); l.assert_consistent(); let two = l.push_n(2);
l.assert_consistent(); let three = l.push_n(3); l.assert_consistent(); let three = l.push_n(3);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); l.remove(two); l.assert_consistent(); l.remove(two);
l.assert_consistent(); l.remove(three); l.assert_consistent(); l.remove(three);
l.assert_consistent(); fail_unless!(l.len() == 1); l.assert_consistent(); assert_eq!(l.len(), 1);
l.assert_consistent(); fail_unless!(l.head() == 1); l.assert_consistent(); assert_eq!(l.head(), 1);
l.assert_consistent(); fail_unless!(l.tail() == 1); l.assert_consistent(); assert_eq!(l.tail(), 1);
l.assert_consistent(); fail_unless!(l.pop().get() == 1); l.assert_consistent(); assert_eq!(l.pop().get(), 1);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -871,7 +871,7 @@ mod tests {
l.assert_consistent(); let one = l.push_n(1); l.assert_consistent(); let one = l.push_n(1);
l.assert_consistent(); let two = l.push_n(2); l.assert_consistent(); let two = l.push_n(2);
l.assert_consistent(); let three = l.push_n(3); l.assert_consistent(); let three = l.push_n(3);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); l.remove(two); l.assert_consistent(); l.remove(two);
l.assert_consistent(); l.remove(three); l.assert_consistent(); l.remove(three);
l.assert_consistent(); l.remove(one); // Twenty-three is number one! l.assert_consistent(); l.remove(one); // Twenty-three is number one!
@ -884,14 +884,14 @@ mod tests {
l.assert_consistent(); let _one = l.push_n(1); l.assert_consistent(); let _one = l.push_n(1);
l.assert_consistent(); let two = l.push_n(2); l.assert_consistent(); let two = l.push_n(2);
l.assert_consistent(); let three = new_dlist_node(3); l.assert_consistent(); let three = new_dlist_node(3);
l.assert_consistent(); fail_unless!(l.len() == 2); l.assert_consistent(); assert_eq!(l.len(), 2);
l.assert_consistent(); l.insert_n_before(three, two); l.assert_consistent(); l.insert_n_before(three, two);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); fail_unless!(l.head() == 1); l.assert_consistent(); assert_eq!(l.head(), 1);
l.assert_consistent(); fail_unless!(l.tail() == 2); l.assert_consistent(); assert_eq!(l.tail(), 2);
l.assert_consistent(); fail_unless!(l.pop().get() == 1); l.assert_consistent(); assert_eq!(l.pop().get(), 1);
l.assert_consistent(); fail_unless!(l.pop().get() == 3); l.assert_consistent(); assert_eq!(l.pop().get(), 3);
l.assert_consistent(); fail_unless!(l.pop().get() == 2); l.assert_consistent(); assert_eq!(l.pop().get(), 2);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -900,14 +900,14 @@ mod tests {
l.assert_consistent(); let one = l.push_n(1); l.assert_consistent(); let one = l.push_n(1);
l.assert_consistent(); let _two = l.push_n(2); l.assert_consistent(); let _two = l.push_n(2);
l.assert_consistent(); let three = new_dlist_node(3); l.assert_consistent(); let three = new_dlist_node(3);
l.assert_consistent(); fail_unless!(l.len() == 2); l.assert_consistent(); assert_eq!(l.len(), 2);
l.assert_consistent(); l.insert_n_after(three, one); l.assert_consistent(); l.insert_n_after(three, one);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); fail_unless!(l.head() == 1); l.assert_consistent(); assert_eq!(l.head(), 1);
l.assert_consistent(); fail_unless!(l.tail() == 2); l.assert_consistent(); assert_eq!(l.tail(), 2);
l.assert_consistent(); fail_unless!(l.pop().get() == 1); l.assert_consistent(); assert_eq!(l.pop().get(), 1);
l.assert_consistent(); fail_unless!(l.pop().get() == 3); l.assert_consistent(); assert_eq!(l.pop().get(), 3);
l.assert_consistent(); fail_unless!(l.pop().get() == 2); l.assert_consistent(); assert_eq!(l.pop().get(), 2);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -915,14 +915,14 @@ mod tests {
let l = DList::<int>(); let l = DList::<int>();
l.assert_consistent(); let one = l.push_n(1); l.assert_consistent(); let one = l.push_n(1);
l.assert_consistent(); let _two = l.push_n(2); l.assert_consistent(); let _two = l.push_n(2);
l.assert_consistent(); fail_unless!(l.len() == 2); l.assert_consistent(); assert_eq!(l.len(), 2);
l.assert_consistent(); l.insert_before(3, one); l.assert_consistent(); l.insert_before(3, one);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); fail_unless!(l.head() == 3); l.assert_consistent(); assert_eq!(l.head(), 3);
l.assert_consistent(); fail_unless!(l.tail() == 2); l.assert_consistent(); assert_eq!(l.tail(), 2);
l.assert_consistent(); fail_unless!(l.pop().get() == 3); l.assert_consistent(); assert_eq!(l.pop().get(), 3);
l.assert_consistent(); fail_unless!(l.pop().get() == 1); l.assert_consistent(); assert_eq!(l.pop().get(), 1);
l.assert_consistent(); fail_unless!(l.pop().get() == 2); l.assert_consistent(); assert_eq!(l.pop().get(), 2);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[test]
@ -930,14 +930,14 @@ mod tests {
let l = DList::<int>(); let l = DList::<int>();
l.assert_consistent(); let _one = l.push_n(1); l.assert_consistent(); let _one = l.push_n(1);
l.assert_consistent(); let two = l.push_n(2); l.assert_consistent(); let two = l.push_n(2);
l.assert_consistent(); fail_unless!(l.len() == 2); l.assert_consistent(); assert_eq!(l.len(), 2);
l.assert_consistent(); l.insert_after(3, two); l.assert_consistent(); l.insert_after(3, two);
l.assert_consistent(); fail_unless!(l.len() == 3); l.assert_consistent(); assert_eq!(l.len(), 3);
l.assert_consistent(); fail_unless!(l.head() == 1); l.assert_consistent(); assert_eq!(l.head(), 1);
l.assert_consistent(); fail_unless!(l.tail() == 3); l.assert_consistent(); assert_eq!(l.tail(), 3);
l.assert_consistent(); fail_unless!(l.pop().get() == 1); l.assert_consistent(); assert_eq!(l.pop().get(), 1);
l.assert_consistent(); fail_unless!(l.pop().get() == 2); l.assert_consistent(); assert_eq!(l.pop().get(), 2);
l.assert_consistent(); fail_unless!(l.pop().get() == 3); l.assert_consistent(); assert_eq!(l.pop().get(), 3);
l.assert_consistent(); fail_unless!(l.is_empty()); l.assert_consistent(); fail_unless!(l.is_empty());
} }
#[test] #[should_fail] #[ignore(cfg(windows))] #[test] #[should_fail] #[ignore(cfg(windows))]

View file

@ -191,77 +191,77 @@ fn test_either_right() {
fn test_lefts() { fn test_lefts() {
let input = ~[Left(10), Right(11), Left(12), Right(13), Left(14)]; let input = ~[Left(10), Right(11), Left(12), Right(13), Left(14)];
let result = lefts(input); let result = lefts(input);
fail_unless!((result == ~[10, 12, 14])); assert_eq!(result, ~[10, 12, 14]);
} }
#[test] #[test]
fn test_lefts_none() { fn test_lefts_none() {
let input: ~[Either<int, int>] = ~[Right(10), Right(10)]; let input: ~[Either<int, int>] = ~[Right(10), Right(10)];
let result = lefts(input); let result = lefts(input);
fail_unless!((vec::len(result) == 0u)); assert_eq!(vec::len(result), 0u);
} }
#[test] #[test]
fn test_lefts_empty() { fn test_lefts_empty() {
let input: ~[Either<int, int>] = ~[]; let input: ~[Either<int, int>] = ~[];
let result = lefts(input); let result = lefts(input);
fail_unless!((vec::len(result) == 0u)); assert_eq!(vec::len(result), 0u);
} }
#[test] #[test]
fn test_rights() { fn test_rights() {
let input = ~[Left(10), Right(11), Left(12), Right(13), Left(14)]; let input = ~[Left(10), Right(11), Left(12), Right(13), Left(14)];
let result = rights(input); let result = rights(input);
fail_unless!((result == ~[11, 13])); assert_eq!(result, ~[11, 13]);
} }
#[test] #[test]
fn test_rights_none() { fn test_rights_none() {
let input: ~[Either<int, int>] = ~[Left(10), Left(10)]; let input: ~[Either<int, int>] = ~[Left(10), Left(10)];
let result = rights(input); let result = rights(input);
fail_unless!((vec::len(result) == 0u)); assert_eq!(vec::len(result), 0u);
} }
#[test] #[test]
fn test_rights_empty() { fn test_rights_empty() {
let input: ~[Either<int, int>] = ~[]; let input: ~[Either<int, int>] = ~[];
let result = rights(input); let result = rights(input);
fail_unless!((vec::len(result) == 0u)); assert_eq!(vec::len(result), 0u);
} }
#[test] #[test]
fn test_partition() { fn test_partition() {
let input = ~[Left(10), Right(11), Left(12), Right(13), Left(14)]; let input = ~[Left(10), Right(11), Left(12), Right(13), Left(14)];
let (lefts, rights) = partition(input); let (lefts, rights) = partition(input);
fail_unless!((lefts[0] == 10)); assert_eq!(lefts[0], 10);
fail_unless!((lefts[1] == 12)); assert_eq!(lefts[1], 12);
fail_unless!((lefts[2] == 14)); assert_eq!(lefts[2], 14);
fail_unless!((rights[0] == 11)); assert_eq!(rights[0], 11);
fail_unless!((rights[1] == 13)); assert_eq!(rights[1], 13);
} }
#[test] #[test]
fn test_partition_no_lefts() { fn test_partition_no_lefts() {
let input: ~[Either<int, int>] = ~[Right(10), Right(11)]; let input: ~[Either<int, int>] = ~[Right(10), Right(11)];
let (lefts, rights) = partition(input); let (lefts, rights) = partition(input);
fail_unless!((vec::len(lefts) == 0u)); assert_eq!(vec::len(lefts), 0u);
fail_unless!((vec::len(rights) == 2u)); assert_eq!(vec::len(rights), 2u);
} }
#[test] #[test]
fn test_partition_no_rights() { fn test_partition_no_rights() {
let input: ~[Either<int, int>] = ~[Left(10), Left(11)]; let input: ~[Either<int, int>] = ~[Left(10), Left(11)];
let (lefts, rights) = partition(input); let (lefts, rights) = partition(input);
fail_unless!((vec::len(lefts) == 2u)); assert_eq!(vec::len(lefts), 2u);
fail_unless!((vec::len(rights) == 0u)); assert_eq!(vec::len(rights), 0u);
} }
#[test] #[test]
fn test_partition_empty() { fn test_partition_empty() {
let input: ~[Either<int, int>] = ~[]; let input: ~[Either<int, int>] = ~[];
let (lefts, rights) = partition(input); let (lefts, rights) = partition(input);
fail_unless!((vec::len(lefts) == 0u)); assert_eq!(vec::len(lefts), 0u);
fail_unless!((vec::len(rights) == 0u)); assert_eq!(vec::len(rights), 0u);
} }
// //

View file

@ -1278,20 +1278,6 @@ mod tests {
fail_unless!(a == b); fail_unless!(a == b);
} }
// two fns copied from libsyntax/util/testing.rs.
// Should they be in their own crate?
pub pure fn check_equal_ptr<T:cmp::Eq> (given : &T, expected: &T) {
if !((given == expected) && (expected == given )) {
fail!(fmt!("given %?, expected %?",given,expected));
}
}
pub pure fn check_equal<T:cmp::Eq> (given : T, expected: T) {
if !((given == expected) && (expected == given )) {
fail!(fmt!("given %?, expected %?",given,expected));
}
}
#[test] #[test]
fn test_write_enum () { fn test_write_enum () {
let bw = @io::BytesWriter(); let bw = @io::BytesWriter();
@ -1309,7 +1295,7 @@ mod tests {
} }
} }
} }
check_equal(str::from_bytes(bw.bytes), ~"[\"frog\",[\"Henry\",349]]"); assert_eq!(str::from_bytes(bw.bytes), ~"[\"frog\",[\"Henry\",349]]");
} }
#[test] #[test]
@ -1324,7 +1310,7 @@ mod tests {
} }
} }
} }
check_equal(str::from_bytes(bw.bytes), ~"\"jodhpurs\""); assert_eq!(str::from_bytes(bw.bytes), ~"\"jodhpurs\"");
} }
#[test] #[test]
@ -1336,7 +1322,7 @@ mod tests {
do encoder.emit_enum_variant (~"None",37,1242) { do encoder.emit_enum_variant (~"None",37,1242) {
} }
} }
check_equal(str::from_bytes(bw.bytes), ~"null"); assert_eq!(str::from_bytes(bw.bytes), ~"null");
} }
#[test] #[test]

View file

@ -208,7 +208,8 @@ pub enum ExpnInfo {
pub type FileName = ~str; pub type FileName = ~str;
pub struct FileLines { pub struct FileLines
{
file: @FileMap, file: @FileMap,
lines: ~[uint] lines: ~[uint]
} }
@ -509,17 +510,16 @@ priv impl CodeMap {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
use util::testing::check_equal;
#[test] #[test]
fn t1 () { fn t1 () {
let cm = CodeMap::new(); let cm = CodeMap::new();
let fm = cm.new_filemap(~"blork.rs",@~"first line.\nsecond line"); let fm = cm.new_filemap(~"blork.rs",@~"first line.\nsecond line");
fm.next_line(BytePos(0)); fm.next_line(BytePos(0));
check_equal(&fm.get_line(0),&~"first line."); assert_eq!(&fm.get_line(0),&~"first line.");
// TESTING BROKEN BEHAVIOR: // TESTING BROKEN BEHAVIOR:
fm.next_line(BytePos(10)); fm.next_line(BytePos(10));
check_equal(&fm.get_line(1),&~"."); assert_eq!(&fm.get_line(1),&~".");
} }
#[test] #[test]

View file

@ -1202,7 +1202,6 @@ fn mk_enum_deser_body(
mod test { mod test {
use std::serialize::Encodable; use std::serialize::Encodable;
use std::serialize::Encoder; use std::serialize::Encoder;
use util::testing::*;
// just adding the ones I want to test, for now: // just adding the ones I want to test, for now:
#[deriving_eq] #[deriving_eq]
@ -1321,7 +1320,7 @@ mod test {
} }
#[test] fn encode_enum_test () { #[test] fn encode_enum_test () {
check_equal (to_call_log(Book(34,44)), assert_eq!(to_call_log(Book(34,44)),
~[CallToEmitEnum (~"Written"), ~[CallToEmitEnum (~"Written"),
CallToEmitEnumVariant (~"Book",0,2), CallToEmitEnumVariant (~"Book",0,2),
CallToEmitEnumVariantArg (0), CallToEmitEnumVariantArg (0),

View file

@ -509,7 +509,6 @@ impl <K: Eq + Hash + IterBytes ,V: Copy> MapChain<K,V>{
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::MapChain; use super::MapChain;
use util::testing::check_equal;
use core::hashmap::linear::LinearMap; use core::hashmap::linear::LinearMap;
#[test] fn testenv () { #[test] fn testenv () {
@ -517,23 +516,23 @@ mod test {
a.insert (@~"abc",@15); a.insert (@~"abc",@15);
let m = MapChain::new(~a); let m = MapChain::new(~a);
m.insert (@~"def",@16); m.insert (@~"def",@16);
// FIXME: #4492 (ICE) check_equal(m.find(&@~"abc"),Some(@15)); // FIXME: #4492 (ICE) assert_eq!(m.find(&@~"abc"),Some(@15));
// .... check_equal(m.find(&@~"def"),Some(@16)); // .... assert_eq!(m.find(&@~"def"),Some(@16));
check_equal(*(m.find(&@~"abc").get()),15); assert_eq!(*(m.find(&@~"abc").get()),15);
check_equal(*(m.find(&@~"def").get()),16); assert_eq!(*(m.find(&@~"def").get()),16);
let n = m.push_frame(); let n = m.push_frame();
// old bindings are still present: // old bindings are still present:
check_equal(*(n.find(&@~"abc").get()),15); assert_eq!(*(n.find(&@~"abc").get()),15);
check_equal(*(n.find(&@~"def").get()),16); assert_eq!(*(n.find(&@~"def").get()),16);
n.insert (@~"def",@17); n.insert (@~"def",@17);
// n shows the new binding // n shows the new binding
check_equal(*(n.find(&@~"abc").get()),15); assert_eq!(*(n.find(&@~"abc").get()),15);
check_equal(*(n.find(&@~"def").get()),17); assert_eq!(*(n.find(&@~"def").get()),17);
// ... but m still has the old ones // ... but m still has the old ones
// FIXME: #4492: check_equal(m.find(&@~"abc"),Some(@15)); // FIXME: #4492: assert_eq!(m.find(&@~"abc"),Some(@15));
// FIXME: #4492: check_equal(m.find(&@~"def"),Some(@16)); // FIXME: #4492: assert_eq!(m.find(&@~"def"),Some(@16));
check_equal(*(m.find(&@~"abc").get()),15); assert_eq!(*(m.find(&@~"abc").get()),15);
check_equal(*(m.find(&@~"def").get()),16); assert_eq!(*(m.find(&@~"def").get()),16);
} }
} }

View file

@ -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 ( macro_rules! condition (
{ $c:ident: $in:ty -> $out:ty; } => { { $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;
use codemap::spanned; use codemap::spanned;
use parse; use parse;
use util::testing::check_equal;
use core::option::{None, Some}; use core::option::{None, Some};
// make sure that fail! is present // make sure that fail! is present
@ -634,9 +643,9 @@ mod test {
let attr2 = make_dummy_attr (@~"bar"); let attr2 = make_dummy_attr (@~"bar");
let escape_attr = make_dummy_attr (@~"macro_escape"); let escape_attr = make_dummy_attr (@~"macro_escape");
let attrs1 = ~[attr1, escape_attr, attr2]; let attrs1 = ~[attr1, escape_attr, attr2];
check_equal (contains_macro_escape (attrs1),true); assert_eq!(contains_macro_escape (attrs1),true);
let attrs2 = ~[attr1,attr2]; 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 // make a "meta_word" outer attribute with the given name

View file

@ -779,7 +779,6 @@ pub mod test {
use core::option::None; use core::option::None;
use diagnostic; use diagnostic;
use parse::token; use parse::token;
use util::testing::{check_equal, check_equal_ptr};
// represents a testing reader (incl. both reader and interner) // represents a testing reader (incl. both reader and interner)
struct Env { struct Env {
@ -809,17 +808,17 @@ pub mod test {
let tok2 = TokenAndSpan{ let tok2 = TokenAndSpan{
tok:token::IDENT(id, false), tok:token::IDENT(id, false),
sp:span {lo:BytePos(21),hi:BytePos(23),expn_info: None}}; sp:span {lo:BytePos(21),hi:BytePos(23),expn_info: None}};
check_equal (tok1,tok2); assert_eq!(tok1,tok2);
// the 'main' id is already read: // the 'main' id is already read:
check_equal (copy string_reader.last_pos,BytePos(28)); assert_eq!(copy string_reader.last_pos,BytePos(28));
// read another token: // read another token:
let tok3 = string_reader.next_token(); let tok3 = string_reader.next_token();
let tok4 = TokenAndSpan{ let tok4 = TokenAndSpan{
tok:token::IDENT(ident_interner.intern (@~"main"), false), tok:token::IDENT(ident_interner.intern (@~"main"), false),
sp:span {lo:BytePos(24),hi:BytePos(28),expn_info: None}}; sp:span {lo:BytePos(24),hi:BytePos(28),expn_info: None}};
check_equal (tok3,tok4); assert_eq!(tok3,tok4);
// the lparen is already read: // the lparen is already read:
check_equal (copy string_reader.last_pos,BytePos(29)) assert_eq!(copy string_reader.last_pos,BytePos(29))
} }
// check that the given reader produces the desired stream // check that the given reader produces the desired stream
@ -828,7 +827,7 @@ pub mod test {
for expected.each |expected_tok| { for expected.each |expected_tok| {
let TokenAndSpan {tok:actual_tok, sp: _} = let TokenAndSpan {tok:actual_tok, sp: _} =
env.string_reader.next_token(); env.string_reader.next_token();
check_equal(&actual_tok,expected_tok); assert_eq!(&actual_tok,expected_tok);
} }
} }
@ -872,21 +871,21 @@ pub mod test {
let env = setup(~"'a'"); let env = setup(~"'a'");
let TokenAndSpan {tok, sp: _} = let TokenAndSpan {tok, sp: _} =
env.string_reader.next_token(); env.string_reader.next_token();
fail_unless!(tok == token::LIT_INT('a' as i64, ast::ty_char)); assert_eq!(tok,token::LIT_INT('a' as i64, ast::ty_char));
} }
#[test] fn character_space() { #[test] fn character_space() {
let env = setup(~"' '"); let env = setup(~"' '");
let TokenAndSpan {tok, sp: _} = let TokenAndSpan {tok, sp: _} =
env.string_reader.next_token(); env.string_reader.next_token();
fail_unless!(tok == token::LIT_INT(' ' as i64, ast::ty_char)); assert_eq!(tok, token::LIT_INT(' ' as i64, ast::ty_char));
} }
#[test] fn character_escaped() { #[test] fn character_escaped() {
let env = setup(~"'\n'"); let env = setup(~"'\n'");
let TokenAndSpan {tok, sp: _} = let TokenAndSpan {tok, sp: _} =
env.string_reader.next_token(); env.string_reader.next_token();
fail_unless!(tok == token::LIT_INT('\n' as i64, ast::ty_char)); assert_eq!(tok, token::LIT_INT('\n' as i64, ast::ty_char));
} }
#[test] fn lifetime_name() { #[test] fn lifetime_name() {
@ -894,7 +893,7 @@ pub mod test {
let TokenAndSpan {tok, sp: _} = let TokenAndSpan {tok, sp: _} =
env.string_reader.next_token(); env.string_reader.next_token();
let id = env.interner.intern(@~"abc"); let id = env.interner.intern(@~"abc");
fail_unless!(tok == token::LIFETIME(id)); assert_eq!(tok, token::LIFETIME(id));
} }
} }

View file

@ -313,7 +313,6 @@ mod test {
use std; use std;
use core::io; use core::io;
use core::option::None; use core::option::None;
use util::testing::*;
#[test] fn to_json_str<E : Encodable<std::json::Encoder>>(val: @E) -> ~str { #[test] fn to_json_str<E : Encodable<std::json::Encoder>>(val: @E) -> ~str {
do io::with_str_writer |writer| { do io::with_str_writer |writer| {
@ -327,7 +326,7 @@ mod test {
@~"fn foo (x : int) { x; }", @~"fn foo (x : int) { x; }",
~[], ~[],
new_parse_sess(None)); new_parse_sess(None));
check_equal(to_json_str(@tts), assert_eq!(to_json_str(@tts),
~"[[\"tt_tok\",[null,[\"IDENT\",[\"fn\",false]]]],\ ~"[[\"tt_tok\",[null,[\"IDENT\",[\"fn\",false]]]],\
[\"tt_tok\",[null,[\"IDENT\",[\"foo\",false]]]],\ [\"tt_tok\",[null,[\"IDENT\",[\"foo\",false]]]],\
[\"tt_delim\",[[[\"tt_tok\",[null,[\"LPAREN\",[]]]],\ [\"tt_delim\",[[[\"tt_tok\",[null,[\"LPAREN\",[]]]],\
@ -347,7 +346,7 @@ mod test {
@~"fn foo (x : int) { x; }", @~"fn foo (x : int) { x; }",
~[],~[], ~[],~[],
new_parse_sess(None)); new_parse_sess(None));
check_equal(ast1,ast2); assert_eq!(ast1,ast2);
} }
} }

View file

@ -117,7 +117,7 @@ pub fn tok_str(++t: token) -> ~str {
pub fn buf_str(toks: ~[token], szs: ~[int], left: uint, right: uint, pub fn buf_str(toks: ~[token], szs: ~[int], left: uint, right: uint,
lim: uint) -> ~str { lim: uint) -> ~str {
let n = vec::len(toks); let n = vec::len(toks);
fail_unless!((n == vec::len(szs))); fail_unless!(n == vec::len(szs));
let mut i = left; let mut i = left;
let mut L = lim; let mut L = lim;
let mut s = ~"["; let mut s = ~"[";

View file

@ -2254,7 +2254,6 @@ pub mod test {
use core::cmp::Eq; use core::cmp::Eq;
use core::option::None; use core::option::None;
use parse; use parse;
use util::testing::check_equal;
fn string_check<T:Eq> (given : &T, expected: &T) { fn string_check<T:Eq> (given : &T, expected: &T) {
if !(given == expected) { if !(given == expected) {
@ -2275,7 +2274,7 @@ pub mod test {
cf: ast::return_val cf: ast::return_val
}; };
let generics = ast_util::empty_generics(); let generics = ast_util::empty_generics();
check_equal (&fun_to_str(&decl, abba_ident, None, &generics, mock_interner), assert_eq!(&fun_to_str(&decl, abba_ident, None, &generics, mock_interner),
&~"fn abba()"); &~"fn abba()");
} }
@ -2295,7 +2294,7 @@ pub mod test {
}); });
let varstr = variant_to_str(var,mock_interner); let varstr = variant_to_str(var,mock_interner);
check_equal(&varstr,&~"pub principal_skinner"); assert_eq!(&varstr,&~"pub principal_skinner");
} }
} }

View file

@ -46,7 +46,6 @@ pub mod visit;
pub mod fold; pub mod fold;
pub mod util { pub mod util {
pub mod interner; pub mod interner;
pub mod testing;
} }

View file

@ -77,32 +77,32 @@ pub fn i1 () {
pub fn i2 () { pub fn i2 () {
let i : Interner<@~str> = Interner::new(); let i : Interner<@~str> = Interner::new();
// first one is zero: // first one is zero:
fail_unless!(i.intern (@~"dog") == 0); assert_eq!(i.intern (@~"dog"), 0);
// re-use gets the same entry: // re-use gets the same entry:
fail_unless!(i.intern (@~"dog") == 0); assert_eq!(i.intern (@~"dog"), 0);
// different string gets a different #: // different string gets a different #:
fail_unless!(i.intern (@~"cat") == 1); assert_eq!(i.intern (@~"cat"), 1);
fail_unless!(i.intern (@~"cat") == 1); assert_eq!(i.intern (@~"cat"), 1);
// dog is still at zero // dog is still at zero
fail_unless!(i.intern (@~"dog") == 0); assert_eq!(i.intern (@~"dog"), 0);
// gensym gets 3 // gensym gets 3
fail_unless!(i.gensym (@~"zebra" ) == 2); assert_eq!(i.gensym (@~"zebra" ), 2);
// gensym of same string gets new number : // gensym of same string gets new number :
fail_unless!(i.gensym (@~"zebra" ) == 3); assert_eq!(i.gensym (@~"zebra" ), 3);
// gensym of *existing* string gets new number: // gensym of *existing* string gets new number:
fail_unless!(i.gensym (@~"dog") == 4); assert_eq!(i.gensym (@~"dog"), 4);
fail_unless!(i.get(0) == @~"dog"); assert_eq!(i.get(0), @~"dog");
fail_unless!(i.get(1) == @~"cat"); assert_eq!(i.get(1), @~"cat");
fail_unless!(i.get(2) == @~"zebra"); assert_eq!(i.get(2), @~"zebra");
fail_unless!(i.get(3) == @~"zebra"); assert_eq!(i.get(3), @~"zebra");
fail_unless!(i.get(4) == @~"dog"); assert_eq!(i.get(4), @~"dog");
} }
#[test] #[test]
pub fn i3 () { pub fn i3 () {
let i : Interner<@~str> = Interner::prefill([@~"Alan",@~"Bob",@~"Carol"]); let i : Interner<@~str> = Interner::prefill([@~"Alan",@~"Bob",@~"Carol"]);
fail_unless!(i.get(0) == @~"Alan"); assert_eq!(i.get(0), @~"Alan");
fail_unless!(i.get(1) == @~"Bob"); assert_eq!(i.get(1), @~"Bob");
fail_unless!(i.get(2) == @~"Carol"); assert_eq!(i.get(2), @~"Carol");
fail_unless!(i.intern(@~"Bob") == 1); assert_eq!(i.intern(@~"Bob"), 1);
} }

View file

@ -1,24 +0,0 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// support for test cases.
use core::cmp;
pub pure fn check_equal_ptr<T:cmp::Eq> (given : &T, expected: &T) {
if !((given == expected) && (expected == given )) {
fail!(fmt!("given %?, expected %?",given,expected));
}
}
pub pure fn check_equal<T:cmp::Eq> (given : T, expected: T) {
if !((given == expected) && (expected == given )) {
fail!(fmt!("given %?, expected %?",given,expected));
}
}

View file

@ -0,0 +1,8 @@
// error-pattern:expected: 15, given: 14
#[deriving_eq]
struct Point { x : int }
fn main() {
assert_eq!(14,15);
}

View file

@ -0,0 +1,10 @@
#[deriving_eq]
struct Point { x : int }
fn main() {
assert_eq!(14,14);
assert_eq!(~"abc",~"abc");
assert_eq!(~Point{x:34},~Point{x:34});
assert_eq!(&Point{x:34},&Point{x:34});
assert_eq!(@Point{x:34},@Point{x:34});
}