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();
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
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;
}
/// 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();
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(())
}