Skip to content

Commit

Permalink
doc tests: use the filename from the source file for doc test program…
Browse files Browse the repository at this point in the history
…s, rather than a dummy name
  • Loading branch information
nrc committed Aug 10, 2017
1 parent 177cbe0 commit 6d736df
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 25 deletions.
8 changes: 4 additions & 4 deletions src/librustdoc/html/markdown.rs
Expand Up @@ -191,8 +191,8 @@ impl<'a, I: Iterator<Item = Event<'a>>> Iterator for CodeBlocks<'a, I> {
.map(|l| map_line(l).for_code())
.collect::<Vec<&str>>().join("\n");
let krate = krate.as_ref().map(|s| &**s);
let test = test::maketest(&test, krate, false,
&Default::default());
let test = test::make_test(&test, krate, false,
&Default::default());
let channel = if test.contains("#![feature(") {
"&amp;version=nightly"
} else {
Expand Down Expand Up @@ -585,8 +585,8 @@ pub fn render(w: &mut fmt::Formatter,
.map(|l| map_line(l).for_code())
.collect::<Vec<&str>>().join("\n");
let krate = krate.as_ref().map(|s| &**s);
let test = test::maketest(&test, krate, false,
&Default::default());
let test = test::make_test(&test, krate, false,
&Default::default());
let channel = if test.contains("#![feature(") {
"&amp;version=nightly"
} else {
Expand Down
46 changes: 25 additions & 21 deletions src/librustdoc/test.rs
Expand Up @@ -167,16 +167,16 @@ fn scrape_test_config(krate: &::rustc::hir::Crate) -> TestOptions {
opts
}

fn runtest(test: &str, cratename: &str, cfgs: Vec<String>, libs: SearchPaths,
externs: Externs,
should_panic: bool, no_run: bool, as_test_harness: bool,
compile_fail: bool, mut error_codes: Vec<String>, opts: &TestOptions,
maybe_sysroot: Option<PathBuf>) {
fn run_test(test: &str, cratename: &str, filename: &str, cfgs: Vec<String>, libs: SearchPaths,
externs: Externs,
should_panic: bool, no_run: bool, as_test_harness: bool,
compile_fail: bool, mut error_codes: Vec<String>, opts: &TestOptions,
maybe_sysroot: Option<PathBuf>) {
// the test harness wants its own `main` & top level functions, so
// never wrap the test in `fn main() { ... }`
let test = maketest(test, Some(cratename), as_test_harness, opts);
let test = make_test(test, Some(cratename), as_test_harness, opts);
let input = config::Input::Str {
name: driver::anon_src(),
name: filename.to_owned(),
input: test.to_owned(),
};
let outputs = OutputTypes::new(&[(OutputType::Exe, None)]);
Expand Down Expand Up @@ -313,8 +313,11 @@ fn runtest(test: &str, cratename: &str, cfgs: Vec<String>, libs: SearchPaths,
}
}

pub fn maketest(s: &str, cratename: Option<&str>, dont_insert_main: bool,
opts: &TestOptions) -> String {
pub fn make_test(s: &str,
cratename: Option<&str>,
dont_insert_main: bool,
opts: &TestOptions)
-> String {
let (crate_attrs, everything_else) = partition_source(s);

let mut prog = String::new();
Expand Down Expand Up @@ -498,18 +501,19 @@ impl Collector {
rustc_driver::in_rustc_thread(move || {
io::set_panic(panic);
io::set_print(print);
runtest(&test,
&cratename,
cfgs,
libs,
externs,
should_panic,
no_run,
as_test_harness,
compile_fail,
error_codes,
&opts,
maybe_sysroot)
run_test(&test,
&cratename,
&filename,
cfgs,
libs,
externs,
should_panic,
no_run,
as_test_harness,
compile_fail,
error_codes,
&opts,
maybe_sysroot)
})
} {
Ok(()) => (),
Expand Down
20 changes: 20 additions & 0 deletions src/test/rustdoc/issue-43153.rs
@@ -0,0 +1,20 @@
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// Test that `include!` in a doc test searches relative to the directory in
// which the test is declared.

// compile-flags:--test

/// ```rust
/// include!("auxiliary/empty.rs");
/// fn main() {}
/// ```
pub struct Foo;

0 comments on commit 6d736df

Please sign in to comment.