diff options
| author | Alona Enraght-Moony <code@alona.page> | 2025-05-28 21:20:41 +0100 |
|---|---|---|
| committer | Alona Enraght-Moony <code@alona.page> | 2025-08-30 23:01:44 +0100 |
| commit | f9a596795ad127f14ecf94d5a03481b495cc4f1c (patch) | |
| tree | 2873d2278910f49c54c67ed0b5000ebeff6089ff /src/doc/rustc-dev-guide | |
| parent | 70366bd477c2c7d65fe5feb322e50297cc91bd49 (diff) | |
Start documenting tests/rustdoc-json
Diffstat (limited to 'src/doc/rustc-dev-guide')
| -rw-r--r-- | src/doc/rustc-dev-guide/src/compiler-src.md | 4 | ||||
| -rw-r--r-- | src/doc/rustc-dev-guide/src/rustdoc-internals/rustdoc-json-test-suite.md | 46 |
2 files changed, 48 insertions, 2 deletions
diff --git a/src/doc/rustc-dev-guide/src/compiler-src.md b/src/doc/rustc-dev-guide/src/compiler-src.md index d67bacb1b33..11b7e15e30d 100644 --- a/src/doc/rustc-dev-guide/src/compiler-src.md +++ b/src/doc/rustc-dev-guide/src/compiler-src.md @@ -153,7 +153,8 @@ The bulk of [`rustdoc`] is in [`librustdoc`]. However, the [`rustdoc`] binary itself is [`src/tools/rustdoc`], which does nothing except call [`rustdoc::main`]. There is also `JavaScript` and `CSS` for the docs in [`src/tools/rustdoc-js`] -and [`src/tools/rustdoc-themes`]. +and [`src/tools/rustdoc-themes`]. The type definitions for `--output-format=json` +are in a seperate crate in [`src/rustdoc-json-types`]. You can read more about [`rustdoc`] in [this chapter][rustdoc-chapter]. @@ -162,6 +163,7 @@ You can read more about [`rustdoc`] in [this chapter][rustdoc-chapter]. [`src/tools/rustdoc-js`]: https://github.com/rust-lang/rust/tree/master/src/tools/rustdoc-js [`src/tools/rustdoc-themes`]: https://github.com/rust-lang/rust/tree/master/src/tools/rustdoc-themes [`src/tools/rustdoc`]: https://github.com/rust-lang/rust/tree/master/src/tools/rustdoc +[`src/rustdoc-json-types`]: https://github.com/rust-lang/rust/tree/master/src/rustdoc-json-types [rustdoc-chapter]: ./rustdoc.md ## Tests diff --git a/src/doc/rustc-dev-guide/src/rustdoc-internals/rustdoc-json-test-suite.md b/src/doc/rustc-dev-guide/src/rustdoc-internals/rustdoc-json-test-suite.md index e08f7709506..79b2ede61da 100644 --- a/src/doc/rustc-dev-guide/src/rustdoc-internals/rustdoc-json-test-suite.md +++ b/src/doc/rustc-dev-guide/src/rustdoc-internals/rustdoc-json-test-suite.md @@ -1,3 +1,47 @@ # The `rustdoc-json` test suite -> **FIXME**: This section is a stub. It will be populated by [PR #2422](https://github.com/rust-lang/rustc-dev-guide/pull/2422/). +This page is specifically about the test suite named `rustdoc-json`, which tests rustdoc's [json output]. +For other test suites used for testing rustdoc, see [Rustdoc tests](../rustdoc.md#tests). + +Tests are run with compiletest, and have access to the usuall set of [directives](../tests/directives.md). +Frequenly used directives here are: + +- [`//@ aux-build`][aux-build] to have dependencies. +- `//@ edition: 2021` (or some other edition). +- `//@ compile-flags: --document-hidden-items` to enable [document private items]. + +Each crate's json output is checked by 2 programs: [jsondoclint] and [jsondocck]. + +## jsondoclint + +[jsondoclint] checks that all [`Id`]s exist in the `index` (or `paths`). +This makes sure their are no dangling [`Id`]s. + +<!-- TODO: It does some more things too? +Also, talk about how it works + --> + +## jsondocck + +<!-- TODO: shlex, jsonpath, values, variables --> + +### Directives + +- `//@ has <path>`:: Checks `<path>` exists, i.e. matches at least 1 value. +- `//@ !has <path>`:: Checks `<path>` doesn't exist, i.e. matches 0 values. +- `//@ has <path> <value>`: Check `<path>` exists, and 1 of the matches is equal to the given `<value>` +- `//@ !has <path> <value>`: Checks `<path>` exists, but none of the matches equal the given `<value>`. +- `//@ is <path> <value>`: Check `<path>` matches exacly one value, and it's equal to the given `<value>`. +- `//@ is <path> <value> <value>...`: Check that `<path>` matches to exactly every given `<value>`. + Ordering doesn't matter here. +- `//@ !is <path> <value>`: Check `<path>` matches exactly one value, and that value is not equal to the given `<value>`. +- `//@ count <path> <number>` Check that `<path>` matches to `<number>` of values. + + + +[json output]: https://doc.rust-lang.org/nightly/rustdoc/unstable-features.html#json-output +[jsondocck]: https://github.com/rust-lang/rust/tree/master/src/tools/jsondocck +[jsondoclint]: https://github.com/rust-lang/rust/tree/master/src/tools/jsondoclint +[aux-build]: ../tests/compiletest.md#building-auxiliary-crates +[`Id`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustdoc_json_types/struct.Id.html +[document private items]: https://doc.rust-lang.org/nightly/rustdoc/command-line-arguments.html#--document-private-items-show-items-that-are-not-public |
