Skip to content

Commit

Permalink
Rollup merge of rust-lang#87372 - GuillaumeGomez:move-test_main-calls…
Browse files Browse the repository at this point in the history
…, r=jyn514

Move calls to test_main into one function

Fixes rust-lang#86254.

cc `@jyn514`
r? `@camelid`
  • Loading branch information
JohnTitor authored Jul 23, 2021
2 parents b963b66 + ef953b0 commit ffd0a3c
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 15 deletions.
22 changes: 15 additions & 7 deletions src/librustdoc/doctest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ crate fn run(options: Options) -> Result<(), ErrorReported> {
registry: rustc_driver::diagnostics_registry(),
};

let mut test_args = options.test_args.clone();
let test_args = options.test_args.clone();
let display_warnings = options.display_warnings;
let nocapture = options.nocapture;
let externs = options.externs.clone();
Expand Down Expand Up @@ -166,12 +166,7 @@ crate fn run(options: Options) -> Result<(), ErrorReported> {
Err(ErrorReported) => return Err(ErrorReported),
};

test_args.insert(0, "rustdoctest".to_string());
if nocapture {
test_args.push("--nocapture".to_string());
}

test::test_main(&test_args, tests, Some(test::Options::new().display_output(display_warnings)));
run_tests(test_args, nocapture, display_warnings, tests);

// Collect and warn about unused externs, but only if we've gotten
// reports for each doctest
Expand Down Expand Up @@ -214,6 +209,19 @@ crate fn run(options: Options) -> Result<(), ErrorReported> {
Ok(())
}

crate fn run_tests(
mut test_args: Vec<String>,
nocapture: bool,
display_warnings: bool,
tests: Vec<test::TestDescAndFn>,
) {
test_args.insert(0, "rustdoctest".to_string());
if nocapture {
test_args.push("--nocapture".to_string());
}
test::test_main(&test_args, tests, Some(test::Options::new().display_output(display_warnings)));
}

// Look for `#![doc(test(no_crate_inject))]`, used by crates in the std facade.
fn scrape_test_config(attrs: &[ast::Attribute]) -> TestOptions {
use rustc_ast_pretty::pprust;
Expand Down
13 changes: 5 additions & 8 deletions src/librustdoc/markdown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ crate fn render<P: AsRef<Path>>(
}

/// Runs any tests/code examples in the markdown file `input`.
crate fn test(mut options: Options) -> Result<(), String> {
crate fn test(options: Options) -> Result<(), String> {
let input_str = read_to_string(&options.input)
.map_err(|err| format!("{}: {}", options.input.display(), err))?;
let mut opts = TestOptions::default();
Expand All @@ -135,14 +135,11 @@ crate fn test(mut options: Options) -> Result<(), String> {

find_testable_code(&input_str, &mut collector, codes, options.enable_per_target_ignores, None);

options.test_args.insert(0, "rustdoctest".to_string());
if options.nocapture {
options.test_args.push("--nocapture".to_string());
}
test::test_main(
&options.test_args,
crate::doctest::run_tests(
options.test_args,
options.nocapture,
options.display_warnings,
collector.tests,
Some(test::Options::new().display_output(options.display_warnings)),
);
Ok(())
}

0 comments on commit ffd0a3c

Please sign in to comment.