rust/tests/rustdoc-gui
Matthias Krüger 72180b348b
Rollup merge of #106888 - GuillaumeGomez:tidy-gui-test, r=notriddle
Add tidy check to ensure that rustdoc GUI tests start with a small description

The first commit comes from https://github.com/rust-lang/rust/pull/106865 to prevent CI to fail.

This PR adds a tidy check to enforce having a small description at the top of the GUI test. Although the format is made to be as easy as possible to read, it's not always obvious what a test is actually checking. I think enforcing this will make it easier for us to come back on these tests if needed.

r? `@notriddle`
2023-01-15 21:17:34 +01:00
..
src
anchor-navigable.goml
anchors.goml rustdoc: remove unnecessary DOM class h1.fqn 2023-01-13 10:09:25 -07:00
auto-hide-trait-implementations.goml
basic-code.goml Add small description to GUI test 2023-01-15 12:58:04 +01:00
check_info_sign_position.goml
check-code-blocks-margin.goml
check-stab-in-docblock.goml
code-blocks-overflow.goml
code-color.goml
code-sidebar-toggle.goml
code-tags.goml
codeblock-sub.goml
codeblock-tooltip.goml
cursor.goml
default-settings.goml
docblock-big-code-mobile.goml
docblock-code-block-line-number.goml
docblock-details.goml
docblock-table-overflow.goml
docblock-table.goml
duplicate-macro-reexport.goml
enum-variants.goml
escape-key.goml
font-weight.goml
hash-item-expansion.goml
headers-color.goml
headings.goml rustdoc: remove unnecessary DOM class h1.fqn 2023-01-13 10:09:25 -07:00
help-page.goml
highlight-colors.goml
huge-collection-of-constants.goml
huge-logo.goml
impl-default-expansion.goml
impl-doc.goml
implementors.goml
item-decl-colors.goml
item-info-alignment.goml
item-info-overflow.goml
item-info.goml
item-summary-table.goml
javascript-disabled.goml
jump-to-def-background.goml
label-next-to-symbol.goml
links-color.goml
list_code_block.goml
method-margins.goml rustdoc: rename CSS rustdoc-toggle -> toggle and toggle -> settings-toggle 2023-01-13 12:38:03 -07:00
mobile.goml
module-items-font.goml
no-docblock.goml
notable-trait.goml
overflow-tooltip-information.goml
pocket-menu.goml
README.md
run-on-hover.goml
rust-logo.goml
scrape-examples-button-focus.goml Add explanation for GUI test 2023-01-14 18:30:33 +01:00
scrape-examples-color.goml
scrape-examples-fonts.goml
scrape-examples-layout.goml
scrape-examples-toggle.goml
search-filter.goml
search-form-elements.goml
search-input-mobile.goml
search-keyboard.goml
search-no-result.goml
search-reexport.goml
search-result-color.goml
search-result-description.goml
search-result-display.goml
search-result-go-to-first.goml rustdoc: remove unnecessary DOM class h1.fqn 2023-01-13 10:09:25 -07:00
search-result-keyword.goml
search-tab-change-title-fn-sig.goml
search-tab.goml
settings.goml rustdoc: rename CSS rustdoc-toggle -> toggle and toggle -> settings-toggle 2023-01-13 12:38:03 -07:00
shortcuts.goml
sidebar-links-color.goml
sidebar-macro-reexport.goml
sidebar-mobile-scroll.goml
sidebar-mobile.goml
sidebar-source-code-display.goml
sidebar-source-code.goml
sidebar.goml
source-anchor-scroll.goml
source-code-page.goml
src-font-size.goml
stab-badge.goml
struct-fields.goml
target.goml
theme-change.goml
theme-in-history.goml
toggle-click-deadspace.goml Rollup merge of #106819 - notriddle:notriddle/rm-h1-fqn, r=GuillaumeGomez 2023-01-14 12:04:37 +09:00
toggle-docs-mobile.goml
toggle-docs.goml rustdoc: rename CSS rustdoc-toggle -> toggle and toggle -> settings-toggle 2023-01-13 12:38:03 -07:00
toggle-implementors.goml
toggled-open-implementations.goml rustdoc: rename CSS rustdoc-toggle -> toggle and toggle -> settings-toggle 2023-01-13 12:38:03 -07:00
trait-sidebar-item-order.goml
type-declation-overflow.goml
unsafe-fn.goml
where-whitespace.goml

The tests present here are used to test the generated HTML from rustdoc. The goal is to prevent unsound/unexpected GUI changes.

This is using the browser-ui-test framework to do so. It works as follows:

It wraps puppeteer to send commands to a web browser in order to navigate and test what's being currently displayed in the web page.

You can find more information and its documentation in its repository.

If you need to have more information on the tests run, you can use --test-args:

$ ./x.py test tests/rustdoc-gui --stage 1 --test-args --debug

If you don't want to run in headless mode (helpful to debug sometimes), you can use --no-headless:

$ ./x.py test tests/rustdoc-gui --stage 1 --test-args --no-headless

To see the supported options, use --help.

Important to be noted: if the chromium instance crashes when you run it, you might need to use --no-sandbox to make it work:

$ ./x.py test tests/rustdoc-gui --stage 1 --test-args --no-sandbox