about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-07-31 20:14:59 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-07-31 23:01:24 -0700
commit4dbe3eb65705c3a04a2c5f90b5c8a20b2a307990 (patch)
tree493390b187209c6388bd6fe8799bfa5025c2e59d /src
parent8cda74c4b5e7244a0ef045af941de313ad84caac (diff)
downloadrust-4dbe3eb65705c3a04a2c5f90b5c8a20b2a307990.tar.gz
rust-4dbe3eb65705c3a04a2c5f90b5c8a20b2a307990.zip
rustdoc: Use --crate-name with --test
This ensures that the name of the crate is set from the command line for tests
so the auto-injection of `extern crate <name>` in doc tests works correctly.
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/lib.rs3
-rw-r--r--src/librustdoc/test.rs9
2 files changed, 9 insertions, 3 deletions
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index a89b7657287..ddd06e427d7 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -214,13 +214,14 @@ pub fn main_args(args: &[String]) -> int {
         Some(eh) => eh,
         None => return 3
     };
+    let crate_name = matches.opt_str("crate-name");
 
     match (should_test, markdown_input) {
         (true, true) => {
             return markdown::test(input, libs, externs, test_args)
         }
         (true, false) => {
-            return test::run(input, cfgs, libs, externs, test_args)
+            return test::run(input, cfgs, libs, externs, test_args, crate_name)
         }
         (false, true) => return markdown::render(input, output.unwrap_or(Path::new("doc")),
                                                  &matches, &external_html,
diff --git a/src/librustdoc/test.rs b/src/librustdoc/test.rs
index aef6af1677a..9df748e74e8 100644
--- a/src/librustdoc/test.rs
+++ b/src/librustdoc/test.rs
@@ -41,7 +41,8 @@ pub fn run(input: &str,
            cfgs: Vec<String>,
            libs: HashSet<Path>,
            externs: core::Externs,
-           mut test_args: Vec<String>)
+           mut test_args: Vec<String>,
+           crate_name: Option<String>)
            -> int {
     let input_path = Path::new(input);
     let input = driver::FileInput(input_path.clone());
@@ -87,7 +88,11 @@ pub fn run(input: &str,
 
     let mut v = RustdocVisitor::new(&*ctx, None);
     v.visit(&ctx.krate);
-    let krate = v.clean();
+    let mut krate = v.clean();
+    match crate_name {
+        Some(name) => krate.name = name,
+        None => {}
+    }
     let (krate, _) = passes::collapse_docs(krate);
     let (krate, _) = passes::unindent_comments(krate);