Skip to content

Commit c5ae545

Browse files
If no argument is provided to merged doctests binary, they will be run in the same process (needed for miri)
1 parent ec4d910 commit c5ae545

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/librustdoc/doctest/runner.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ fn main() -> std::process::ExitCode {{
137137
const TESTS: [test::TestDescAndFn; {nb_tests}] = [{ids}];
138138
let bin_marker = std::ffi::OsStr::new(__doctest_mod::BIN_OPTION);
139139
let test_marker = std::ffi::OsStr::new(__doctest_mod::RUN_OPTION);
140+
let test_args = &[{test_args}];
140141
141142
let mut args = std::env::args_os().skip(1);
142143
while let Some(arg) = args.next() {{
@@ -145,11 +146,7 @@ while let Some(arg) = args.next() {{
145146
panic!(\"missing argument after `{{}}`\", __doctest_mod::BIN_OPTION);
146147
}};
147148
unsafe {{ crate::__doctest_mod::BINARY_PATH = Some(binary.into()); }}
148-
return std::process::Termination::report(test::test_main(
149-
&[{test_args}],
150-
Vec::from(TESTS),
151-
None,
152-
));
149+
return std::process::Termination::report(test::test_main(test_args, Vec::from(TESTS), None));
153150
}} else if arg == test_marker {{
154151
let Some(nb_test) = args.next() else {{
155152
panic!(\"missing argument after `{{}}`\", __doctest_mod::RUN_OPTION);
@@ -165,7 +162,8 @@ while let Some(arg) = args.next() {{
165162
}}
166163
}}
167164
168-
panic!(\"missing argument for merged doctest binary\");
165+
eprintln!(\"WARNING: No argument provided so doctests will be run in the same process\");
166+
std::process::Termination::report(test::test_main(test_args, Vec::from(TESTS), None))
169167
}}",
170168
nb_tests = self.nb_tests,
171169
output = self.output,

0 commit comments

Comments
 (0)