Skip to content

Commit ace2f09

Browse files
committed
alloc::boxed: enable test
Previously test was disabled due to `#[cfg(test)]` before `mod boxed`.
1 parent a0f86de commit ace2f09

File tree

3 files changed

+77
-53
lines changed

3 files changed

+77
-53
lines changed

src/liballoc/boxed.rs

Lines changed: 0 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -187,56 +187,3 @@ impl<T: ?Sized> DerefMut for Box<T> {
187187
fn deref_mut(&mut self) -> &mut T { &mut **self }
188188
}
189189

190-
#[cfg(test)]
191-
mod test {
192-
#[test]
193-
fn test_owned_clone() {
194-
let a = Box::new(5i);
195-
let b: Box<int> = a.clone();
196-
assert!(a == b);
197-
}
198-
199-
#[test]
200-
fn any_move() {
201-
let a = Box::new(8u) as Box<Any>;
202-
let b = Box::new(Test) as Box<Any>;
203-
204-
match a.downcast::<uint>() {
205-
Ok(a) => { assert!(a == Box::new(8u)); }
206-
Err(..) => panic!()
207-
}
208-
match b.downcast::<Test>() {
209-
Ok(a) => { assert!(a == Box::new(Test)); }
210-
Err(..) => panic!()
211-
}
212-
213-
let a = Box::new(8u) as Box<Any>;
214-
let b = Box::new(Test) as Box<Any>;
215-
216-
assert!(a.downcast::<Box<Test>>().is_err());
217-
assert!(b.downcast::<Box<uint>>().is_err());
218-
}
219-
220-
#[test]
221-
fn test_show() {
222-
let a = Box::new(8u) as Box<Any>;
223-
let b = Box::new(Test) as Box<Any>;
224-
let a_str = a.to_str();
225-
let b_str = b.to_str();
226-
assert_eq!(a_str, "Box<Any>");
227-
assert_eq!(b_str, "Box<Any>");
228-
229-
let a = &8u as &Any;
230-
let b = &Test as &Any;
231-
let s = format!("{}", a);
232-
assert_eq!(s, "&Any");
233-
let s = format!("{}", b);
234-
assert_eq!(s, "&Any");
235-
}
236-
237-
#[test]
238-
fn deref() {
239-
fn homura<T: Deref<Target=i32>>(_: T) { }
240-
homura(Box::new(765i32));
241-
}
242-
}

src/liballoc/boxed_test.rs

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
//! Test for `boxed` mod.
12+
13+
use core::any::Any;
14+
use core::ops::Deref;
15+
use core::result::Result::{Ok, Err};
16+
use core::clone::Clone;
17+
18+
use std::boxed::Box;
19+
use std::boxed::BoxAny;
20+
21+
#[test]
22+
fn test_owned_clone() {
23+
let a = Box::new(5i);
24+
let b: Box<int> = a.clone();
25+
assert!(a == b);
26+
}
27+
28+
#[derive(PartialEq, Eq)]
29+
struct Test;
30+
31+
#[test]
32+
fn any_move() {
33+
let a = Box::new(8u) as Box<Any>;
34+
let b = Box::new(Test) as Box<Any>;
35+
36+
match a.downcast::<uint>() {
37+
Ok(a) => { assert!(a == Box::new(8u)); }
38+
Err(..) => panic!()
39+
}
40+
match b.downcast::<Test>() {
41+
Ok(a) => { assert!(a == Box::new(Test)); }
42+
Err(..) => panic!()
43+
}
44+
45+
let a = Box::new(8u) as Box<Any>;
46+
let b = Box::new(Test) as Box<Any>;
47+
48+
assert!(a.downcast::<Box<Test>>().is_err());
49+
assert!(b.downcast::<Box<uint>>().is_err());
50+
}
51+
52+
#[test]
53+
fn test_show() {
54+
let a = Box::new(8u) as Box<Any>;
55+
let b = Box::new(Test) as Box<Any>;
56+
let a_str = format!("{:?}", a);
57+
let b_str = format!("{:?}", b);
58+
assert_eq!(a_str, "Box<Any>");
59+
assert_eq!(b_str, "Box<Any>");
60+
61+
static EIGHT: usize = 8us;
62+
static TEST: Test = Test;
63+
let a = &EIGHT as &Any;
64+
let b = &TEST as &Any;
65+
let s = format!("{:?}", a);
66+
assert_eq!(s, "&Any");
67+
let s = format!("{:?}", b);
68+
assert_eq!(s, "&Any");
69+
}
70+
71+
#[test]
72+
fn deref() {
73+
fn homura<T: Deref<Target=i32>>(_: T) { }
74+
homura(Box::new(765i32));
75+
}

src/liballoc/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ pub mod heap;
9191

9292
#[cfg(not(test))]
9393
pub mod boxed;
94+
#[cfg(test)]
95+
mod boxed_test;
9496
pub mod arc;
9597
pub mod rc;
9698

0 commit comments

Comments
 (0)