| Index: docs/layout_tests_linux.md
|
| diff --git a/docs/layout_tests_linux.md b/docs/layout_tests_linux.md
|
| index c5d0be0aa1e5835ba2f5e32d66111f6daf87af50..154e33428bef85997b52c89a3355b1eacfee4cc9 100644
|
| --- a/docs/layout_tests_linux.md
|
| +++ b/docs/layout_tests_linux.md
|
| @@ -1,21 +1,31 @@
|
| # Running layout tests on Linux
|
|
|
| - 1. Build `blink_tests` (see LinuxBuildInstructions)
|
| - 1. Checkout the layout tests
|
| - * If you have an entry in your .gclient file that includes "LayoutTests", 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/WebKit/LayoutTests/`. For example, `run_layout_tests.py fast` will only run the tests under `src/third_party/WebKit/LayoutTests/fast/`.
|
| - 1. When the tests finish, any unexpected results should be displayed.
|
| -
|
| -See [Running WebKit Layout Tests](http://dev.chromium.org/developers/testing/webkit-layout-tests) for full documentation about set up and available options.
|
| +1. Build `blink_tests` (see LinuxBuildInstructions)
|
| +1. Checkout the layout tests
|
| + * If you have an entry in your `.gclient` file that includes
|
| + "LayoutTests", 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/WebKit/LayoutTests/`. For example,
|
| + `run_layout_tests.py fast` will only run the tests under
|
| + `src/third_party/WebKit/LayoutTests/fast/`.
|
| +1. When the tests finish, any unexpected results should be displayed.
|
| +
|
| +See
|
| +[Running WebKit Layout Tests](http://dev.chromium.org/developers/testing/webkit-layout-tests)
|
| +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.
|
| +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
|
|
|
| Make sure you have all the necessary fonts installed.
|
| -```
|
| +
|
| +```shell
|
| sudo apt-get install apache2 wdiff php5-cgi ttf-indic-fonts \
|
| msttcorefonts ttf-dejavu-core ttf-kochi-gothic ttf-kochi-mincho \
|
| ttf-thai-tlwg
|
| @@ -25,66 +35,104 @@ You can also just run `build/install-build-deps.sh` again.
|
|
|
| ## 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
|
| -```
|
| +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
|
| +
|
|
|
| ## Running layout tests under valgrind on Linux
|
|
|
| As above, but use `tools/valgrind/chrome_tests.sh -t webkit` instead. e.g.
|
| -```
|
| -sh tools/valgrind/chrome_tests.sh -t webkit LayoutTests/fast/
|
| -```
|
| +
|
| + sh tools/valgrind/chrome_tests.sh -t webkit LayoutTests/fast/
|
| +
|
| This defaults to using --debug. Read the script for more details.
|
|
|
| -If you're trying to reproduce a run from the valgrind buildbot, look for the --run\_chunk=XX:YY
|
| -line in the bot's log. You can rerun exactly as the bot did with the commands
|
| -```
|
| +If you're trying to reproduce a run from the valgrind buildbot, look for the
|
| +`--run_chunk=XX:YY` line in the bot's log. You can rerun exactly as the bot did
|
| +with the commands.
|
| +
|
| +```shell
|
| cd ~/chromium/src
|
| -echo XX > valgrind_layout_chunk.txt
|
| +echo XX > valgrind_layout_chunk.txt
|
| sh tools/valgrind/chrome_tests.sh -t layout -n YY
|
| ```
|
| +
|
| That will run the XXth chunk of YY layout tests.
|
|
|
| ## Configuration tips
|
| - * Use an optimized content\_shell when rebaselining or running a lot of tests. ([bug 8475](http://code.google.com/p/chromium/issues/detail?id=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 [UsingALinuxChroot](UsingALinuxChroot.md).
|
| +
|
| +* 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](using_a_linux_chroot.md).
|
| +
|
| ## Getting a layout test into a debugger
|
|
|
| There are two ways:
|
| - 1. Run content\_shell directly rather than using run\_layout\_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 layout test (rather than relative to `WebKit/LayoutTests`).
|
| - 1. Or, run as normal but with the `--additional-drt-flag=--renderer-startup-dialog --additional-drt-flag=--no-timeout --time-out-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.
|
| +
|
| +1. Run `content_shell` directly rather than using `run_layout_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 layout test (rather than relative to
|
| + `WebKit/LayoutTests`).
|
| +1. Or, run as normal but with the
|
| + `--additional-drt-flag=--renderer-startup-dialog
|
| + --additional-drt-flag=--no-timeout --time-out-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.
|
| +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 layout tests in the Xephyr: `DISPLAY=:4 run_layout_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. Install Xephyr (`sudo apt-get install xserver-xephyr`)
|
| - 1. Start Xephyr as display 4: `Xephyr :4 -screen 1024x768x24`
|
| - 1. Run the layout tests in the Xephyr: `DISPLAY=:4 run_layout_tests.py`
|
| +1. `XEPHYR_PAUSE=$((500*1000)) Xephyr ...etc... # 500 ms repaint flash`
|
| +1. `kill -USR1 $(pidof Xephyr)`
|
|
|
| -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).
|
|
|
| -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 layout tests in the Xvfb: `DISPLAY=:4 run_layout_tests.py`
|
| +1. Start Xvfb as display 4: `Xvfb :4 -screen 0 1024x768x24`
|
| +1. Run the layout tests in the Xvfb: `DISPLAY=:4 run_layout_tests.py`
|
|
|
| ## Tiling Window managers
|
|
|
| -The layout 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.
|
| +The layout 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:
|
| +
|
| +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
|
| ...
|
| -```
|
| +```
|
|
|