@@ -45,11 +45,8 @@ impl DocTestRunner {
4545 self . crate_attrs . insert ( line. to_string ( ) ) ;
4646 }
4747 }
48- if !self . ids . is_empty ( ) {
49- self . ids . push ( ',' ) ;
50- }
5148 self . ids . push_str ( & format ! (
52- "{}::TEST" ,
49+ "tests.push( {}::TEST); \n " ,
5350 generate_mergeable_doctest(
5451 doctest,
5552 scraped_test,
@@ -136,19 +133,23 @@ mod __doctest_mod {{
136133
137134#[rustc_main]
138135fn main() -> std::process::ExitCode {{
139- const TESTS: [test::TestDescAndFn; {nb_tests}] = [{ids}];
136+ let tests = {{
137+ let mut tests = Vec::new();
138+ {ids}
139+ tests
140+ }};
140141let test_marker = std::ffi::OsStr::new(__doctest_mod::RUN_OPTION);
141142let test_args = &[{test_args}];
142143const ENV_BIN: &'static str = \" RUSTDOC_DOCTEST_BIN_PATH\" ;
143144
144145if let Ok(binary) = std::env::var(ENV_BIN) {{
145146 let _ = crate::__doctest_mod::BINARY_PATH.set(binary.into());
146147 unsafe {{ std::env::remove_var(ENV_BIN); }}
147- return std::process::Termination::report(test::test_main(test_args, Vec::from(TESTS) , None));
148+ return std::process::Termination::report(test::test_main(test_args, tests , None));
148149}} else if let Ok(nb_test) = std::env::var(__doctest_mod::RUN_OPTION) {{
149150 if let Ok(nb_test) = nb_test.parse::<usize>() {{
150- if let Some(test) = TESTS .get(nb_test) {{
151- if let test::StaticTestFn(f) = test.testfn {{
151+ if let Some(test) = tests .get(nb_test) {{
152+ if let test::StaticTestFn(f) = & test.testfn {{
152153 return std::process::Termination::report(f());
153154 }}
154155 }}
@@ -158,9 +159,8 @@ if let Ok(binary) = std::env::var(ENV_BIN) {{
158159
159160eprintln!(\" WARNING: No rustdoc doctest environment variable provided so doctests will be run in \
160161 the same process\" );
161- std::process::Termination::report(test::test_main(test_args, Vec::from(TESTS) , None))
162+ std::process::Termination::report(test::test_main(test_args, tests , None))
162163}}" ,
163- nb_tests = self . nb_tests,
164164 output = self . output,
165165 ids = self . ids,
166166 )
0 commit comments