
Change this to --timeout-ms to align with other parameter names, e.g. --exit-after-n-crashes-or-timeouts, --skip-timeouts, --initialize-webgpu-adapter-at-startup-timeout-ms. Bug: 1095123 Change-Id: I039c342249c7392ffdb850eebbbf63a51fe7cd8a Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3366217 Reviewed-by: Dirk Pranke <dpranke@google.com> Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org> Commit-Queue: Weizhong Xia <weizhong@google.com> Cr-Commit-Position: refs/heads/main@{#955755}
122 lines
4.4 KiB
Markdown
122 lines
4.4 KiB
Markdown
# Running web tests on Linux
|
|
|
|
1. Build `blink_tests` (see [Linux-specific build instructions](https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md))
|
|
1. Checkout the web tests
|
|
* If you have an entry in your `.gclient` file that includes
|
|
"web_tests", you may need to comment it out and sync.
|
|
* You can run a subset of the tests by passing in a path relative to
|
|
`src/third_party/blink/web_tests/`. For example,
|
|
`third_party/blink/tools/run_web_tests.py fast` will only run the tests under
|
|
`src/third_party/blink/web_tests/fast/`.
|
|
1. When the tests finish, any unexpected results should be displayed.
|
|
|
|
See [Web Tests](testing/web_tests.md)
|
|
for full documentation about set up and available options.
|
|
|
|
## Pixel Tests
|
|
|
|
The pixel test results were generated on Ubuntu 10.4 (Lucid). If you're running
|
|
a newer version of Ubuntu, you will get some pixel test failures due to changes
|
|
in freetype or fonts. In this case, you can create a Lucid 64 chroot using
|
|
`build/install-chroot.sh` to compile and run tests.
|
|
|
|
## Fonts
|
|
|
|
1. Make sure you have all the dependencies installed by running
|
|
|
|
```shell
|
|
build/install-build-deps.sh
|
|
```
|
|
|
|
2. Double check that
|
|
|
|
```shell
|
|
ls third_party/test_fonts/test_fonts/
|
|
```
|
|
|
|
is not empty and lists the fonts downloaded through the `test_fonts`
|
|
hook in the top level `DEPS` file.
|
|
|
|
## Plugins
|
|
|
|
If `fast/dom/object-plugin-hides-properties.html` and
|
|
`plugins/embed-attributes-style.html` are failing, try uninstalling
|
|
`totem-mozilla` from your system:
|
|
|
|
sudo apt-get remove totem-mozilla
|
|
|
|
## Configuration tips
|
|
|
|
* Use an optimized `content_shell` when rebaselining or running a lot of
|
|
tests. ([bug 8475](https://crbug.com/8475) is about how the debug output
|
|
differs from the optimized output.)
|
|
|
|
`ninja -C out/Release content_shell`
|
|
|
|
* Make sure you have wdiff installed: `sudo apt-get install wdiff` to get
|
|
prettier diff output.
|
|
* Some pixel tests may fail due to processor-specific rounding errors. Build
|
|
using a chroot jail with Lucid 64-bit user space to be sure that your system
|
|
matches the checked in baselines. You can use `build/install-chroot.sh` to
|
|
set up a Lucid 64 chroot. Learn more about
|
|
[using a linux chroot](linux/using_a_chroot.md).
|
|
|
|
## Getting a web test into a debugger
|
|
|
|
There are two ways:
|
|
|
|
1. Run `content_shell` directly rather than using `run_web_tests.py`. You
|
|
will need to pass some options:
|
|
* `--no-timeout` to give you plenty of time to debug
|
|
* the fully qualified path of the web test (rather than relative to
|
|
`blink/web_tests`).
|
|
1. Or, run as normal but with the
|
|
`--additional-drt-flag=--renderer-startup-dialog
|
|
--additional-drt-flag=--no-timeout --timeout-ms=86400000` flags. The first
|
|
one makes content\_shell bring up a dialog before running, which then would
|
|
let you attach to the process via `gdb -p PID_OF_DUMPRENDERTREE`. The others
|
|
help avoid the test shell and DumpRenderTree timeouts during the debug
|
|
session.
|
|
|
|
## Using an embedded X server
|
|
|
|
If you try to use your computer while the tests are running, you may get annoyed
|
|
as windows are opened and closed automatically. To get around this, you can
|
|
create a separate X server for running the tests.
|
|
|
|
1. Install Xephyr (`sudo apt-get install xserver-xephyr`)
|
|
1. Start Xephyr as display 4: `Xephyr :4 -screen 1024x768x24`
|
|
1. Run the web tests in the Xephyr: `DISPLAY=:4 run_web_tests.py`
|
|
|
|
Xephyr supports debugging repainting. See the
|
|
[Xephyr README](http://cgit.freedesktop.org/xorg/xserver/tree/hw/kdrive/ephyr/README)
|
|
for details. In brief:
|
|
|
|
1. `XEPHYR_PAUSE=$((500*1000)) Xephyr ...etc... # 500 ms repaint flash`
|
|
1. `kill -USR1 $(pidof Xephyr)`
|
|
|
|
If you don't want to see anything at all, you can use Xvfb (should already be
|
|
installed).
|
|
|
|
1. Start Xvfb as display 4: `Xvfb :4 -screen 0 1024x768x24`
|
|
1. Run the web tests in the Xvfb: `DISPLAY=:4 run_web_tests.py`
|
|
|
|
## Tiling Window managers
|
|
|
|
The web tests want to run with the window at a particular size down to the
|
|
pixel level. This means if your window manager resizes the window it'll cause
|
|
test failures. This is another good reason to use an embedded X server.
|
|
|
|
### xmonad
|
|
|
|
In your `.xmonad/xmonad.hs`, change your config to include a manageHook along
|
|
these lines:
|
|
|
|
```
|
|
test_shell_manage = className =? "Test_shell" --> doFloat
|
|
main = xmonad $
|
|
defaultConfig
|
|
{ manageHook = test_shell_manage <+> manageHook defaultConfig
|
|
...
|
|
```
|