From: Yuki Okushi Date: Fri, 23 Jul 2021 10:27:47 +0000 (+0900) Subject: Rollup merge of #87372 - GuillaumeGomez:move-test_main-calls, r=jyn514 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=7c2436ad340e092b4877bbba355bf3b39bc52a1c;hp=a247257955a1292cc2f05d37ec71f6b2d2f611cf;p=rust.git Rollup merge of #87372 - GuillaumeGomez:move-test_main-calls, r=jyn514 Move calls to test_main into one function Fixes #86254. cc ``@jyn514`` r? ``@camelid`` --- diff --git a/src/librustdoc/doctest.rs b/src/librustdoc/doctest.rs index 5ce7c49278d..b45e84aff8c 100644 --- a/src/librustdoc/doctest.rs +++ b/src/librustdoc/doctest.rs @@ -105,7 +105,7 @@ 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(); @@ -166,12 +166,7 @@ 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 @@ -214,6 +209,19 @@ Ok(()) } +crate fn run_tests( + mut test_args: Vec, + nocapture: bool, + display_warnings: bool, + tests: Vec, +) { + 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; diff --git a/src/librustdoc/markdown.rs b/src/librustdoc/markdown.rs index 6c8b95c04c9..80af2a7aaf5 100644 --- a/src/librustdoc/markdown.rs +++ b/src/librustdoc/markdown.rs @@ -115,7 +115,7 @@ fn extract_leading_metadata(s: &str) -> (Vec<&str>, &str) { } /// 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(); @@ -135,14 +135,11 @@ fn extract_leading_metadata(s: &str) -> (Vec<&str>, &str) { 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(()) }