-
Notifications
You must be signed in to change notification settings - Fork 13.9k
Description
Summary
Currently, rustdoc doesn't have much test coverage, but it does have a lot of edge cases. We would like to have more test coverage, so we can improve the code with less risk of introducing bugs.
It's even helpful to add tests for incorrect behavior since it will help us find, fix, and test the fixes for bugs.
What to test
- Behavior of re-exports (e.g.,
pub use self::foo::bar) and inlining (some re-exports are rendered as re-exports, while others have their docs copied as if the re-export is the definition)- Update(fmease): We now have a bunch of tests in
tests/rustdoc/reexport/,tests/rustdoc/inline_cross/(inlined cross-crate reexports),tests/rustdoc/inline_local(inlined local reexports) and also top-level
- Update(fmease): We now have a bunch of tests in
- Trait implementations, including normal impls, blanket impls (e.g.,
impl<T> MyTrait for &T), and auto impls (likeSized,Send, andSync)- Update(fmease): We now have a bunch of tests in
tests/rustdoc/auto/andtests/rustdoc-ui/synthetic-auto-trait-impls/
- Update(fmease): We now have a bunch of tests in
- Notable traits popup (appears as an
(i)next to return types); it has some bugs currently that would be good to fix.
How to test
Here is the documentation for rustdoc's main test suite tests/rustdoc/: https://rustc-dev-guide.rust-lang.org/rustdoc-internals/rustdoc-test-suite.html#the-rustdoc-test-suite. You may also want to look at some existing tests in said directory.
Please note that you do not need to check that rustdoc's behavior is correct. We will check during code review, and as mentioned earlier, tests for incorrect behavior can be helpful too.
If you have any questions or get stuck, please ask here or on Zulip in #rustdoc!