about summary refs log tree commit diff
path: root/src/doc
diff options
context:
space:
mode:
authorArpad Borsos <swatinem@swatinem.de>2022-10-28 11:43:30 +0200
committerArpad Borsos <arpad.borsos@sentry.io>2023-03-31 14:01:53 +0200
commit2e924bbef303ee8fc610e49d81825c2263b0b4bf (patch)
treefc473fe3184d9003cbfb2c1c9f74d07ab98f90c5 /src/doc
parentcf32b9de1e8f66526c36ad2927458558d2e81093 (diff)
downloadrust-2e924bbef303ee8fc610e49d81825c2263b0b4bf.tar.gz
rust-2e924bbef303ee8fc610e49d81825c2263b0b4bf.zip
Stabilize rustdoc `--test-run-directory`
Diffstat (limited to 'src/doc')
-rw-r--r--src/doc/rustdoc/src/command-line-arguments.md15
-rw-r--r--src/doc/rustdoc/src/write-documentation/documentation-tests.md12
2 files changed, 26 insertions, 1 deletions
diff --git a/src/doc/rustdoc/src/command-line-arguments.md b/src/doc/rustdoc/src/command-line-arguments.md
index 2a2e51b2f63..e80ee08aa30 100644
--- a/src/doc/rustdoc/src/command-line-arguments.md
+++ b/src/doc/rustdoc/src/command-line-arguments.md
@@ -179,7 +179,7 @@ $ rustdoc src/lib.rs --test
 This flag will run your code examples as tests. For more, see [the chapter
 on documentation tests](write-documentation/documentation-tests.md).
 
-See also `--test-args`.
+See also `--test-args` and `--test-run-directory`.
 
 ## `--test-args`: pass options to test runner
 
@@ -194,6 +194,19 @@ For more, see [the chapter on documentation tests](write-documentation/documenta
 
 See also `--test`.
 
+## `--test-run-directory`: run code examples in a specific directory
+
+Using this flag looks like this:
+
+```bash
+$ rustdoc src/lib.rs --test --test-run-directory=/path/to/working/directory
+```
+
+This flag will run your code examples in the specified working directory.
+For more, see [the chapter on documentation tests](write-documentation/documentation-tests.md).
+
+See also `--test`.
+
 ## `--target`: generate documentation for the specified target triple
 
 Using this flag looks like this:
diff --git a/src/doc/rustdoc/src/write-documentation/documentation-tests.md b/src/doc/rustdoc/src/write-documentation/documentation-tests.md
index 1cb5b049df4..a7d3186fb78 100644
--- a/src/doc/rustdoc/src/write-documentation/documentation-tests.md
+++ b/src/doc/rustdoc/src/write-documentation/documentation-tests.md
@@ -443,3 +443,15 @@ pub struct ReadmeDoctests;
 
 This will include your README as documentation on the hidden struct `ReadmeDoctests`, which will
 then be tested alongside the rest of your doctests.
+
+## Controlling the compilation and run directories
+
+By default, `rustdoc --test` will compile and run documentation test examples
+from the same working directory.
+The compilation directory is being used for compiler diagnostics, the `file!()` macro and
+the output of `rustdoc` test runner itself, whereas the run directory has an influence on file-system
+operations within documentation test examples, such as `std::fs::read_to_string`.
+
+The `--test-run-directory` flag allows controlling the run directory separately from the compilation directory.
+This is particularly useful in workspaces, where compiler invocations and thus diagnostics should be
+relative to the workspace directory, but documentation test examples should run relative to the crate directory.