diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2021-07-23 19:27:47 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-23 19:27:47 +0900 |
| commit | 7c2436ad340e092b4877bbba355bf3b39bc52a1c (patch) | |
| tree | 54cfa14923895028acf88b53c4b4f6b2b3c3d3bb | |
| parent | a247257955a1292cc2f05d37ec71f6b2d2f611cf (diff) | |
| parent | ef953b096ec094ee6a2f69fd62028c1540f9573c (diff) | |
| download | rust-7c2436ad340e092b4877bbba355bf3b39bc52a1c.tar.gz rust-7c2436ad340e092b4877bbba355bf3b39bc52a1c.zip | |
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``
| -rw-r--r-- | src/librustdoc/doctest.rs | 22 | ||||
| -rw-r--r-- | src/librustdoc/markdown.rs | 13 |
2 files changed, 20 insertions, 15 deletions
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 @@ 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(); @@ -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 @@ -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; 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 @@ 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(); @@ -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(()) } |
