diff --git a/tests/rustdoc-html/doctest/doctest-runtool.rs b/tests/rustdoc-html/doctest/doctest-runtool.rs
deleted file mode 100644
index c4fb02e5228cc..0000000000000
--- a/tests/rustdoc-html/doctest/doctest-runtool.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-// Tests that the --test-runtool argument works.
-
-//@ ignore-cross-compile
-//@ aux-bin: doctest-runtool.rs
-//@ compile-flags: --test
-//@ compile-flags: --test-runtool=auxiliary/bin/doctest-runtool
-//@ compile-flags: --test-runtool-arg=arg1 --test-runtool-arg
-//@ compile-flags: 'arg2 with space'
-
-/// ```
-/// assert_eq!(std::env::var("DOCTEST_RUNTOOL_CHECK"), Ok("xyz".to_string()));
-/// ```
-pub fn main() {}
diff --git a/tests/rustdoc-html/doctest/auxiliary/doctest-runtool.rs b/tests/rustdoc-ui/doctest/auxiliary/doctest-runtool.rs
similarity index 100%
rename from tests/rustdoc-html/doctest/auxiliary/doctest-runtool.rs
rename to tests/rustdoc-ui/doctest/auxiliary/doctest-runtool.rs
diff --git a/tests/rustdoc-html/doctest/auxiliary/empty.rs b/tests/rustdoc-ui/doctest/auxiliary/empty.rs
similarity index 100%
rename from tests/rustdoc-html/doctest/auxiliary/empty.rs
rename to tests/rustdoc-ui/doctest/auxiliary/empty.rs
diff --git a/tests/rustdoc-html/doctest/doctest-cfg-feature-30252.rs b/tests/rustdoc-ui/doctest/doctest-cfg-feature-30252.rs
similarity index 70%
rename from tests/rustdoc-html/doctest/doctest-cfg-feature-30252.rs
rename to tests/rustdoc-ui/doctest/doctest-cfg-feature-30252.rs
index 0a2e3f3cf9589..eae5077783c82 100644
--- a/tests/rustdoc-html/doctest/doctest-cfg-feature-30252.rs
+++ b/tests/rustdoc-ui/doctest/doctest-cfg-feature-30252.rs
@@ -1,4 +1,6 @@
//@ compile-flags:--test --cfg feature="bar"
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
// https://github.com/rust-lang/rust/issues/30252
#![crate_name="issue_30252"]
diff --git a/tests/rustdoc-ui/doctest/doctest-cfg-feature-30252.stdout b/tests/rustdoc-ui/doctest/doctest-cfg-feature-30252.stdout
new file mode 100644
index 0000000000000..24dc3daaab3dc
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-cfg-feature-30252.stdout
@@ -0,0 +1,6 @@
+
+running 1 test
+test $DIR/doctest-cfg-feature-30252.rs - foo (line 8) ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-crate-attributes-38129.rs b/tests/rustdoc-ui/doctest/doctest-crate-attributes-38129.rs
similarity index 95%
rename from tests/rustdoc-html/doctest/doctest-crate-attributes-38129.rs
rename to tests/rustdoc-ui/doctest/doctest-crate-attributes-38129.rs
index b9c837188325d..b08eb194bb880 100644
--- a/tests/rustdoc-html/doctest/doctest-crate-attributes-38129.rs
+++ b/tests/rustdoc-ui/doctest/doctest-crate-attributes-38129.rs
@@ -1,4 +1,6 @@
-//@ compile-flags:--test
+//@ compile-flags:--test --test-args=--test-threads=1
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
// This file tests the source-partitioning behavior of rustdoc.
// Each test contains some code that should be put into the generated
diff --git a/tests/rustdoc-ui/doctest/doctest-crate-attributes-38129.stdout b/tests/rustdoc-ui/doctest/doctest-crate-attributes-38129.stdout
new file mode 100644
index 0000000000000..e6c8c688ba10a
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-crate-attributes-38129.stdout
@@ -0,0 +1,10 @@
+
+running 5 tests
+test $DIR/doctest-crate-attributes-38129.rs - both_attrs (line 49) ... ok
+test $DIR/doctest-crate-attributes-38129.rs - both_attrs_reverse (line 76) ... ok
+test $DIR/doctest-crate-attributes-38129.rs - feature_attr (line 43) ... ok
+test $DIR/doctest-crate-attributes-38129.rs - non_feature_attr (line 17) ... ok
+test $DIR/doctest-crate-attributes-38129.rs - simple (line 12) ... ok
+
+test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-hide-empty-line-23106.rs b/tests/rustdoc-ui/doctest/doctest-hide-empty-line-23106.rs
similarity index 63%
rename from tests/rustdoc-html/doctest/doctest-hide-empty-line-23106.rs
rename to tests/rustdoc-ui/doctest/doctest-hide-empty-line-23106.rs
index 2e8a8f3f1e2b6..dc39eb328b3c6 100644
--- a/tests/rustdoc-html/doctest/doctest-hide-empty-line-23106.rs
+++ b/tests/rustdoc-ui/doctest/doctest-hide-empty-line-23106.rs
@@ -1,4 +1,6 @@
//@ compile-flags:--test
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
// https://github.com/rust-lang/rust/issues/23106
#![crate_name="issue_23106"]
diff --git a/tests/rustdoc-ui/doctest/doctest-hide-empty-line-23106.stdout b/tests/rustdoc-ui/doctest/doctest-hide-empty-line-23106.stdout
new file mode 100644
index 0000000000000..9dfbad9388c6f
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-hide-empty-line-23106.stdout
@@ -0,0 +1,6 @@
+
+running 1 test
+test $DIR/doctest-hide-empty-line-23106.rs - main (line 8) ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-ignore-32556.rs b/tests/rustdoc-ui/doctest/doctest-ignore-32556.rs
similarity index 63%
rename from tests/rustdoc-html/doctest/doctest-ignore-32556.rs
rename to tests/rustdoc-ui/doctest/doctest-ignore-32556.rs
index 99da9358bd6ba..8f0b2ea2ee152 100644
--- a/tests/rustdoc-html/doctest/doctest-ignore-32556.rs
+++ b/tests/rustdoc-ui/doctest/doctest-ignore-32556.rs
@@ -1,4 +1,8 @@
// https://github.com/rust-lang/rust/issues/32556
+//@ compile-flags:--test
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
+
#![crate_name="issue_32556"]
/// Blah blah blah
diff --git a/tests/rustdoc-ui/doctest/doctest-ignore-32556.stdout b/tests/rustdoc-ui/doctest/doctest-ignore-32556.stdout
new file mode 100644
index 0000000000000..e5d188b4e98e2
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-ignore-32556.stdout
@@ -0,0 +1,6 @@
+
+running 1 test
+test $DIR/doctest-ignore-32556.rs - foo (line 9) ... ignored
+
+test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-include-43153.rs b/tests/rustdoc-ui/doctest/doctest-include-43153.rs
similarity index 76%
rename from tests/rustdoc-html/doctest/doctest-include-43153.rs
rename to tests/rustdoc-ui/doctest/doctest-include-43153.rs
index 0f63c84de39b9..3cfe76fd7c323 100644
--- a/tests/rustdoc-html/doctest/doctest-include-43153.rs
+++ b/tests/rustdoc-ui/doctest/doctest-include-43153.rs
@@ -4,6 +4,8 @@
// which the test is declared.
//@ compile-flags:--test
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
/// ```rust
/// include!("auxiliary/empty.rs");
diff --git a/tests/rustdoc-ui/doctest/doctest-include-43153.stdout b/tests/rustdoc-ui/doctest/doctest-include-43153.stdout
new file mode 100644
index 0000000000000..d79c698517e4d
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-include-43153.stdout
@@ -0,0 +1,6 @@
+
+running 1 test
+test $DIR/doctest-include-43153.rs - Foo (line 10) ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-macro-38219.rs b/tests/rustdoc-ui/doctest/doctest-macro-38219.rs
similarity index 70%
rename from tests/rustdoc-html/doctest/doctest-macro-38219.rs
rename to tests/rustdoc-ui/doctest/doctest-macro-38219.rs
index 574e84523783e..197efdbe389bb 100644
--- a/tests/rustdoc-html/doctest/doctest-macro-38219.rs
+++ b/tests/rustdoc-ui/doctest/doctest-macro-38219.rs
@@ -1,6 +1,7 @@
// https://github.com/rust-lang/rust/issues/38219
//@ compile-flags:--test
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
//@ should-fail
/// ```
diff --git a/tests/rustdoc-html/doctest/doctest-manual-crate-name.rs b/tests/rustdoc-ui/doctest/doctest-manual-crate-name.rs
similarity index 51%
rename from tests/rustdoc-html/doctest/doctest-manual-crate-name.rs
rename to tests/rustdoc-ui/doctest/doctest-manual-crate-name.rs
index 8d526959fe1ef..a2e65323a2e81 100644
--- a/tests/rustdoc-html/doctest/doctest-manual-crate-name.rs
+++ b/tests/rustdoc-ui/doctest/doctest-manual-crate-name.rs
@@ -1,4 +1,6 @@
//@ compile-flags:--test
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
//! ```
//! #![crate_name="asdf"]
diff --git a/tests/rustdoc-ui/doctest/doctest-manual-crate-name.stdout b/tests/rustdoc-ui/doctest/doctest-manual-crate-name.stdout
new file mode 100644
index 0000000000000..b30c95680c930
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-manual-crate-name.stdout
@@ -0,0 +1,6 @@
+
+running 1 test
+test $DIR/doctest-manual-crate-name.rs - (line 5) ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-markdown-inline-parse-23744.rs b/tests/rustdoc-ui/doctest/doctest-markdown-inline-parse-23744.rs
similarity index 69%
rename from tests/rustdoc-html/doctest/doctest-markdown-inline-parse-23744.rs
rename to tests/rustdoc-ui/doctest/doctest-markdown-inline-parse-23744.rs
index 2ba9176ae88c2..72976d03c8730 100644
--- a/tests/rustdoc-html/doctest/doctest-markdown-inline-parse-23744.rs
+++ b/tests/rustdoc-ui/doctest/doctest-markdown-inline-parse-23744.rs
@@ -1,4 +1,6 @@
-//@ compile-flags:--test
+//@ compile-flags:--test --test-args=--test-threads=1
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
// https://github.com/rust-lang/rust/issues/23744
#![crate_name="issue_23744"]
diff --git a/tests/rustdoc-ui/doctest/doctest-markdown-inline-parse-23744.stdout b/tests/rustdoc-ui/doctest/doctest-markdown-inline-parse-23744.stdout
new file mode 100644
index 0000000000000..46bd27f8bcdd0
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-markdown-inline-parse-23744.stdout
@@ -0,0 +1,7 @@
+
+running 2 tests
+test $DIR/doctest-markdown-inline-parse-23744.rs - foo (line 10) ... ok
+test $DIR/doctest-markdown-inline-parse-23744.rs - foo (line 14) ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-markdown-trailing-docblock-48377.rs b/tests/rustdoc-ui/doctest/doctest-markdown-trailing-docblock-48377.rs
similarity index 59%
rename from tests/rustdoc-html/doctest/doctest-markdown-trailing-docblock-48377.rs
rename to tests/rustdoc-ui/doctest/doctest-markdown-trailing-docblock-48377.rs
index 74c1a9d245971..7f6883e3ef027 100644
--- a/tests/rustdoc-html/doctest/doctest-markdown-trailing-docblock-48377.rs
+++ b/tests/rustdoc-ui/doctest/doctest-markdown-trailing-docblock-48377.rs
@@ -1,4 +1,6 @@
-//@ compile-flags:--test
+//@ compile-flags:--test --test-args=--test-threads=1
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
// https://github.com/rust-lang/rust/issues/48377
diff --git a/tests/rustdoc-ui/doctest/doctest-markdown-trailing-docblock-48377.stdout b/tests/rustdoc-ui/doctest/doctest-markdown-trailing-docblock-48377.stdout
new file mode 100644
index 0000000000000..e99a0047b2a91
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-markdown-trailing-docblock-48377.stdout
@@ -0,0 +1,7 @@
+
+running 2 tests
+test $DIR/doctest-markdown-trailing-docblock-48377.rs - (line 14) ... ok
+test $DIR/doctest-markdown-trailing-docblock-48377.rs - (line 9) ... ok
+
+test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+
diff --git a/tests/rustdoc-html/doctest/doctest-multi-line-string-literal-25944.rs b/tests/rustdoc-ui/doctest/doctest-multi-line-string-literal-25944.rs
similarity index 72%
rename from tests/rustdoc-html/doctest/doctest-multi-line-string-literal-25944.rs
rename to tests/rustdoc-ui/doctest/doctest-multi-line-string-literal-25944.rs
index 2b9c6119c67db..78420e780bc2f 100644
--- a/tests/rustdoc-html/doctest/doctest-multi-line-string-literal-25944.rs
+++ b/tests/rustdoc-ui/doctest/doctest-multi-line-string-literal-25944.rs
@@ -1,4 +1,6 @@
//@ compile-flags:--test
+//@ normalize-stdout: "finished in \d+\.\d+s" -> "finished in $$TIME"
+//@ check-pass
// https://github.com/rust-lang/rust/issues/25944
#![crate_name="issue_25944"]
diff --git a/tests/rustdoc-ui/doctest/doctest-multi-line-string-literal-25944.stdout b/tests/rustdoc-ui/doctest/doctest-multi-line-string-literal-25944.stdout
new file mode 100644
index 0000000000000..4cc88ece099da
--- /dev/null
+++ b/tests/rustdoc-ui/doctest/doctest-multi-line-string-literal-25944.stdout
@@ -0,0 +1,6 @@
+
+running 1 test
+test $DIR/doctest-multi-line-string-literal-25944.rs - main (line 8) ... ok
+
+test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
+