diff --git a/src/libcore/hashmap.rs b/src/libcore/hashmap.rs index 41f4f34dc1971..9b82a8dad059e 100644 --- a/src/libcore/hashmap.rs +++ b/src/libcore/hashmap.rs @@ -833,7 +833,7 @@ pub impl HashSet { } } -#[test] +#[cfg(test)] mod test_map { use container::{Container, Map, Set}; use option::{None, Some}; @@ -1009,7 +1009,7 @@ mod test_map { } } -#[test] +#[cfg(test)] mod test_set { use super::*; use container::{Container, Map, Set}; diff --git a/src/libcore/repr.rs b/src/libcore/repr.rs index 03e44e00d8831..29b8400706ce0 100644 --- a/src/libcore/repr.rs +++ b/src/libcore/repr.rs @@ -673,7 +673,7 @@ pub fn write_repr(writer: @Writer, object: &T) { } } -#[test] +#[cfg(test)] struct P {a: int, b: float} #[test] diff --git a/src/libcore/task/mod.rs b/src/libcore/task/mod.rs index 2a4817727f4cf..0e97c101dc651 100644 --- a/src/libcore/task/mod.rs +++ b/src/libcore/task/mod.rs @@ -797,7 +797,7 @@ fn test_run_basic() { po.recv(); } -#[test] +#[cfg(test)] struct Wrapper { mut f: Option> } diff --git a/src/librustc/front/test.rs b/src/librustc/front/test.rs index 4506feece2b8f..ddd702e7d697d 100644 --- a/src/librustc/front/test.rs +++ b/src/librustc/front/test.rs @@ -141,7 +141,7 @@ fn fold_item(cx: @mut TestCtxt, i: @ast::item, fld: @fold::ast_fold) debug!("current path: %s", ast_util::path_name_i(copy cx.path, cx.sess.parse_sess.interner)); - if is_test_fn(i) || is_bench_fn(i) { + if is_test_fn(cx, i) || is_bench_fn(i) { match i.node { ast::item_fn(_, purity, _, _, _) if purity == ast::unsafe_fn => { let sess = cx.sess; @@ -169,7 +169,7 @@ fn fold_item(cx: @mut TestCtxt, i: @ast::item, fld: @fold::ast_fold) return res; } -fn is_test_fn(i: @ast::item) -> bool { +fn is_test_fn(cx: @mut TestCtxt, i: @ast::item) -> bool { let has_test_attr = !attr::find_attrs_by_name(i.attrs, ~"test").is_empty(); @@ -188,6 +188,13 @@ fn is_test_fn(i: @ast::item) -> bool { } } + if has_test_attr && !has_test_signature(i) { + let sess = cx.sess; + sess.span_err( + i.span, + ~"functions used as tests must have signature fn() -> ()." + ); + } return has_test_attr && has_test_signature(i); } diff --git a/src/libstd/cmp.rs b/src/libstd/cmp.rs index 5d7f64a7c8fa0..ea3793c137483 100644 --- a/src/libstd/cmp.rs +++ b/src/libstd/cmp.rs @@ -64,7 +64,7 @@ fn test_fuzzy_eq_eps() { assert!(!(&1.5f).fuzzy_eq_eps(&0.9, &0.5)); } -#[test] +#[cfg(test)] mod test_complex{ use cmp::*; diff --git a/src/libstd/deque.rs b/src/libstd/deque.rs index 5d52bb7c0810b..8a310a9f52b5e 100644 --- a/src/libstd/deque.rs +++ b/src/libstd/deque.rs @@ -353,7 +353,7 @@ mod tests { assert!(*deq.get(3) == d); } - #[test] + #[cfg(test)] fn test_parameterized(a: T, b: T, c: T, d: T) { let mut deq = Deque::new(); assert!(deq.len() == 0); diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 74e4f562ce5c5..4f1d41a4a7a17 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -418,7 +418,7 @@ mod test { new_parser_from_source_str(ps,~[],~"bogofile",source_str) } - #[test] fn to_json_str>(val: @E) -> ~str { + #[cfg(test)] fn to_json_str>(val: @E) -> ~str { do io::with_str_writer |writer| { val.encode(~std::json::Encoder(writer)); }