From 4b45bb92cbb33d17b7d2b86bb81bad6963e53b48 Mon Sep 17 00:00:00 2001 From: Patrick Conrad <7929040+prconrad@users.noreply.github.com> Date: Mon, 23 Aug 2021 17:18:31 -0400 Subject: [PATCH 1/3] Doctest persist full binaries when persisting fix: #88110 --- src/librustdoc/doctest.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustdoc/doctest.rs b/src/librustdoc/doctest.rs index 083d82cb414..3b2457ef954 100644 --- a/src/librustdoc/doctest.rs +++ b/src/librustdoc/doctest.rs @@ -361,7 +361,7 @@ fn run_test( for debugging_option_str in &options.debugging_opts_strs { compiler.arg("-Z").arg(&debugging_option_str); } - if no_run && !compile_fail { + if no_run && !compile_fail && options.persist_doctests.is_none() { compiler.arg("--emit=metadata"); } compiler.arg("--target").arg(match target { From 785309b8b19601e3cf38955c0cbedcd682c7487b Mon Sep 17 00:00:00 2001 From: Patrick Conrad Date: Wed, 25 Aug 2021 12:03:41 -0400 Subject: [PATCH 2/3] Add make tests for preserving test binaries fix: #88110 --- .../run-make/doctests-keep-binaries/Makefile | 21 +++++++++++++++++++ src/test/run-make/doctests-keep-binaries/t.rs | 11 ++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/test/run-make/doctests-keep-binaries/Makefile create mode 100644 src/test/run-make/doctests-keep-binaries/t.rs diff --git a/src/test/run-make/doctests-keep-binaries/Makefile b/src/test/run-make/doctests-keep-binaries/Makefile new file mode 100644 index 00000000000..273c8980b02 --- /dev/null +++ b/src/test/run-make/doctests-keep-binaries/Makefile @@ -0,0 +1,21 @@ +include ../../run-make-fulldeps/tools.mk + +# Check that valid binaries are persisted by running them, regardless of whether the --run or --no-run option is used. + +all: run no_run + +run: + mkdir -p $(TMPDIR)/doctests + $(RUSTC) --crate-type rlib t.rs + $(RUSTDOC) -Zunstable-options --test --persist-doctests $(TMPDIR)/doctests --extern t=$(TMPDIR)/libt.rlib t.rs + $(TMPDIR)/doctests/t_rs_2_0/rust_out + $(TMPDIR)/doctests/t_rs_8_0/rust_out + rm -rf $(TMPDIR)/doctests + +no_run: + mkdir -p $(TMPDIR)/doctests + $(RUSTC) --crate-type rlib t.rs + $(RUSTDOC) -Zunstable-options --test --persist-doctests $(TMPDIR)/doctests --extern t=$(TMPDIR)/libt.rlib t.rs --no-run + $(TMPDIR)/doctests/t_rs_2_0/rust_out + $(TMPDIR)/doctests/t_rs_8_0/rust_out + rm -rf $(TMPDIR)/doctests diff --git a/src/test/run-make/doctests-keep-binaries/t.rs b/src/test/run-make/doctests-keep-binaries/t.rs new file mode 100644 index 00000000000..c38cf0a0b25 --- /dev/null +++ b/src/test/run-make/doctests-keep-binaries/t.rs @@ -0,0 +1,11 @@ +/// Fungle the foople. +/// ``` +/// t::foople(); +/// ``` +pub fn foople() {} + +/// Flomble the florp +/// ``` +/// t::florp(); +/// ``` +pub fn florp() {} From cfe2d30bb46fc60af223448713c3d57ee027f34a Mon Sep 17 00:00:00 2001 From: Patrick Conrad Date: Tue, 31 Aug 2021 18:06:18 -0400 Subject: [PATCH 3/3] Move test to run-make-fulldeps to avoid compiler flag bug --- .../doctests-keep-binaries/Makefile | 0 .../{run-make => run-make-fulldeps}/doctests-keep-binaries/t.rs | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/test/{run-make => run-make-fulldeps}/doctests-keep-binaries/Makefile (100%) rename src/test/{run-make => run-make-fulldeps}/doctests-keep-binaries/t.rs (100%) diff --git a/src/test/run-make/doctests-keep-binaries/Makefile b/src/test/run-make-fulldeps/doctests-keep-binaries/Makefile similarity index 100% rename from src/test/run-make/doctests-keep-binaries/Makefile rename to src/test/run-make-fulldeps/doctests-keep-binaries/Makefile diff --git a/src/test/run-make/doctests-keep-binaries/t.rs b/src/test/run-make-fulldeps/doctests-keep-binaries/t.rs similarity index 100% rename from src/test/run-make/doctests-keep-binaries/t.rs rename to src/test/run-make-fulldeps/doctests-keep-binaries/t.rs