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) - Trait implementations, including normal impls, blanket impls (e.g.,
impl<T> MyTrait for &T
), and auto impls (likeSized
,Send
, andSync
) - 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 tests (the tests in src/test/rustdoc
):
Lines 28 to 100 in 49d4232
You may also want to look at some existing tests in src/test/rustdoc
.
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
!