about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-05-02 00:15:46 -0700
committerbors <bors@rust-lang.org>2013-05-02 00:15:46 -0700
commitd1f7220219c722665e15b88aeecfc78601fa4f22 (patch)
treebaef8c898d0012ecfd8d5a1dd4252eea57a1485b
parent5458d7dddda38f063220a19191373faecf11065f (diff)
parent9862cf703b8a867b13e674f892f7059b09fe59e0 (diff)
downloadrust-d1f7220219c722665e15b88aeecfc78601fa4f22.tar.gz
rust-d1f7220219c722665e15b88aeecfc78601fa4f22.zip
auto merge of #6111 : pnkfelix/rust/issue4391-rustc-should-not-silently-skip-erroneous-tests, r=pnkfelix
...e.

Fixes #4391.
-rw-r--r--src/libcore/hashmap.rs4
-rw-r--r--src/libcore/repr.rs2
-rw-r--r--src/libcore/task/mod.rs2
-rw-r--r--src/librustc/front/test.rs11
-rw-r--r--src/libstd/cmp.rs2
-rw-r--r--src/libstd/deque.rs2
-rw-r--r--src/libsyntax/parse/mod.rs2
7 files changed, 16 insertions, 9 deletions
diff --git a/src/libcore/hashmap.rs b/src/libcore/hashmap.rs
index 41f4f34dc19..9b82a8dad05 100644
--- a/src/libcore/hashmap.rs
+++ b/src/libcore/hashmap.rs
@@ -833,7 +833,7 @@ pub impl <T:Hash + Eq> HashSet<T> {
     }
 }
 
-#[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 03e44e00d88..29b8400706c 100644
--- a/src/libcore/repr.rs
+++ b/src/libcore/repr.rs
@@ -673,7 +673,7 @@ pub fn write_repr<T>(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 2a4817727f4..0e97c101dc6 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<Chan<()>>
 }
diff --git a/src/librustc/front/test.rs b/src/librustc/front/test.rs
index 4506feece2b..ddd702e7d69 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 5d7f64a7c8f..ea3793c1374 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 5d52bb7c081..8a310a9f52b 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<T:Copy + Eq + Durable>(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 74e4f562ce5..4f1d41a4a7a 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<E : Encodable<std::json::Encoder>>(val: @E) -> ~str {
+    #[cfg(test)] fn to_json_str<E : Encodable<std::json::Encoder>>(val: @E) -> ~str {
         do io::with_str_writer |writer| {
             val.encode(~std::json::Encoder(writer));
         }