diff options
| author | bors <bors@rust-lang.org> | 2014-06-29 23:36:43 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-06-29 23:36:43 +0000 |
| commit | bb5695b95c288c442dbe528f7e1c1b08f79f033d (patch) | |
| tree | 0269cdf468e55163d90491d9ba0b18bf76e718c7 /src/liballoc | |
| parent | a490871a6c3fae9017a6402fcf911d05dcf1d013 (diff) | |
| parent | 1ed646eaf7d09455a086afa11bcd83a7d2a6b0f4 (diff) | |
| download | rust-bb5695b95c288c442dbe528f7e1c1b08f79f033d.tar.gz rust-bb5695b95c288c442dbe528f7e1c1b08f79f033d.zip | |
auto merge of #15245 : sfackler/rust/coretest, r=alexcrichton
Libcore's test infrastructure is complicated by the fact that many lang items are defined in the crate. The current approach (realcore/realstd imports) is hacky and hard to work with (tests inside of core::cmp haven't been run for months!). Moving tests to a separate crate does mean that they can only test the public API of libcore, but I don't feel that that is too much of an issue. The only tests that I had to get rid of were some checking the various numeric formatters, but those are also exercised through normal format! calls in other tests.
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/owned.rs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/liballoc/owned.rs b/src/liballoc/owned.rs index 589adbd41d0..33afa806f4e 100644 --- a/src/liballoc/owned.rs +++ b/src/liballoc/owned.rs @@ -146,3 +146,51 @@ impl fmt::Show for Box<Any> { f.pad("Box<Any>") } } + +#[cfg(test)] +mod test { + #[test] + fn test_owned_clone() { + let a = box 5i; + let b: Box<int> = a.clone(); + assert!(a == b); + } + + #[test] + fn any_move() { + let a = box 8u as Box<Any>; + let b = box Test as Box<Any>; + + match a.move::<uint>() { + Ok(a) => { assert!(a == box 8u); } + Err(..) => fail!() + } + match b.move::<Test>() { + Ok(a) => { assert!(a == box Test); } + Err(..) => fail!() + } + + let a = box 8u as Box<Any>; + let b = box Test as Box<Any>; + + assert!(a.move::<Box<Test>>().is_err()); + assert!(b.move::<Box<uint>>().is_err()); + } + + #[test] + fn test_show() { + let a = box 8u as Box<Any>; + let b = box Test as Box<Any>; + let a_str = a.to_str(); + let b_str = b.to_str(); + assert_eq!(a_str.as_slice(), "Box<Any>"); + assert_eq!(b_str.as_slice(), "Box<Any>"); + + let a = &8u as &Any; + let b = &Test as &Any; + let s = format!("{}", a); + assert_eq!(s.as_slice(), "&Any"); + let s = format!("{}", b); + assert_eq!(s.as_slice(), "&Any"); + } +} |
