about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-05-11 10:52:52 -0700
committerbors <bors@rust-lang.org>2013-05-11 10:52:52 -0700
commit96de2b0273e828edf45d4b3e6c4dc5c3cf665fd5 (patch)
treec8003f6d4e5f512d142ae22ae04a6cc9575c05ff
parent18a47f9580c0757f76d6b56081931d10a7859b18 (diff)
parent9b30fa31168c9337da36a95484b2550954528216 (diff)
downloadrust-96de2b0273e828edf45d4b3e6c4dc5c3cf665fd5.tar.gz
rust-96de2b0273e828edf45d4b3e6c4dc5c3cf665fd5.zip
auto merge of #6383 : huonw/rust/rustc-expand-then-strip, r=thestinger
This allows macros to create tests and benchmarks.

This is possibly unsound (I've got no idea, but it seemed to work), and being able to programmatically generate benchmarks to compare several implementations of similar algorithms is nice.
-rw-r--r--src/librustc/driver/driver.rs8
-rw-r--r--src/test/run-pass/issue-2904.rs6
-rw-r--r--src/test/run-pass/issue-3424.rs3
-rw-r--r--src/test/run-pass/issue-3559.rs6
4 files changed, 7 insertions, 16 deletions
diff --git a/src/librustc/driver/driver.rs b/src/librustc/driver/driver.rs
index cf77f81a492..b4c2763497c 100644
--- a/src/librustc/driver/driver.rs
+++ b/src/librustc/driver/driver.rs
@@ -182,16 +182,16 @@ pub fn compile_rest(sess: Session,
     *sess.building_library = session::building_library(
         sess.opts.crate_type, crate, sess.opts.test);
 
+    crate = time(time_passes, ~"expansion", ||
+        syntax::ext::expand::expand_crate(sess.parse_sess, copy cfg,
+                                          crate));
+
     crate = time(time_passes, ~"configuration", ||
         front::config::strip_unconfigured_items(crate));
 
     crate = time(time_passes, ~"maybe building test harness", ||
         front::test::modify_for_testing(sess, crate));
 
-    crate = time(time_passes, ~"expansion", ||
-        syntax::ext::expand::expand_crate(sess.parse_sess, copy cfg,
-                                          crate));
-
     if upto == cu_expand { return (crate, None); }
 
     crate = time(time_passes, ~"intrinsic injection", ||
diff --git a/src/test/run-pass/issue-2904.rs b/src/test/run-pass/issue-2904.rs
index 112aab597f0..9ea8caef7bc 100644
--- a/src/test/run-pass/issue-2904.rs
+++ b/src/test/run-pass/issue-2904.rs
@@ -79,12 +79,6 @@ mod test {
     pub fn trivial_to_str() {
         assert!(lambda.to_str() == "\\")
     }
-
-    #[test]
-    pub fn read_simple_board() {
-        let s = include_str!("./maps/contest1.map");
-        io::with_str_reader(s, read_board_grid)
-    }
 }
 
 pub fn main() {}
diff --git a/src/test/run-pass/issue-3424.rs b/src/test/run-pass/issue-3424.rs
index d79eef46f05..70a01f8cf02 100644
--- a/src/test/run-pass/issue-3424.rs
+++ b/src/test/run-pass/issue-3424.rs
@@ -16,12 +16,11 @@ use core::path::{Path};
 
 type rsrc_loader = ~fn(path: &Path) -> result::Result<~str, ~str>;
 
-#[test]
 fn tester()
 {
     let loader: rsrc_loader = |_path| {result::Ok(~"more blah")};
 
-    let path = path::from_str("blah");
+    let path = path::Path("blah");
     assert!(loader(&path).is_ok());
 }
 
diff --git a/src/test/run-pass/issue-3559.rs b/src/test/run-pass/issue-3559.rs
index 334831fea4d..b3f3aed9ea1 100644
--- a/src/test/run-pass/issue-3559.rs
+++ b/src/test/run-pass/issue-3559.rs
@@ -1,4 +1,4 @@
-// xfail-fast
+// xfail-test #4276
 
 // Copyright 2012 The Rust Project Developers. See the COPYRIGHT
 // file at the top-level directory of this distribution and at
@@ -15,7 +15,6 @@ extern mod std;
 
 use core::io::{WriterUtil};
 
-#[cfg(test)]
 fn check_strs(actual: &str, expected: &str) -> bool
 {
     if actual != expected
@@ -26,10 +25,9 @@ fn check_strs(actual: &str, expected: &str) -> bool
     return true;
 }
 
-#[test]
 fn tester()
 {
-    let mut table = core::hashmap::HashMap();
+    let mut table = core::hashmap::HashMap::new();
     table.insert(@~"one", 1);
     table.insert(@~"two", 2);
     assert!(check_strs(table.to_str(), ~"xxx"));   // not sure what expected should be