= Running Tests for WebKitGTK+ = == Dependencies == You will need to install the following Debian packages to run the layout tests. For other distributions, you must install the equivalent packages. Note that distributions may compile FreeType with different hinting algorithms which may affect string width. {{{ sudo aptitude install curl ruby apache2 libapache2-mod-php5 libapache2-mod-bw ttf-dejavu ttf-liberation }}} For the media tests: {{{ sudo aptitude install libgstreamer-plugins-base0.10-0 gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg }}} GStreamer -core and -plugins-base >= 0.10.31 will soon be required. == Xvfb == WebKit functional tests for WebKitGTK+ should be run inside a virtual framebuffer environment. The most common choice for WebKItGTK developers is Xvfb. To start Xvfb simply run: {{{ Xvfb :23 -ac -screen 0 1024x768x24 & }}} `-screen 0 1024x768x24` ensures that Xvfb has a deep enough color depth to produce accurate pixel test results. === Does Xvfb keep segfaulting? === Some older versions of Ubuntu may have bugs which cause Xvfb to segfault while running tests. A workaround for this is to run Xvfb with the GLX extension disabled: {{{ Xvfb :23 -ac -screen 0 1024x768x24 -extension GLX & }}} == Running the Tests == Simply run the `run-webkit-tests` script from the WebKitTools directory. `run-webkit-tests` also supports the `--debug` argument to run the tests with the debug build of WebKitGTK+. {{{ env -i DISPLAY=:23 ./WebKitTools/Scripts/run-webkit-tests --gtk [--debug] }}} If you wish to run a single test you can do: {{{ env -i DISPLAY=:23 ./WebKitTools/Scripts/run-webkit-tests --gtk fast/forms/plaintext-mode-1.html }}} === Pixel Tests === WebKitGTK+ supports running pixel tests, but they are not enabled by default. To run them simply pass the `-p` argument to `run-webkit-tests`: {{{ env -i DISPLAY=:23 ./WebKitTools/Scripts/run-webkit-tests --gtk -p }}} === Adding Baselines === Sometimes you may need to generate new results for a test that relies on render tree output. This can be accomplished by passing the `--new-test-results` option. Note that new pixel results require the `-p` option as well: {{{ env -i DISPLAY=:23 ./WebKitTools/Scripts/run-webkit-tests --gtk fast/forms/plaintext-mode-1.html --new-test-results }}} === Running Tests in GDB === For debugging a test it may be useful to run it directly in DumpRenderTree (with gdb): {{{ WebKitBuild/Debug/Programs/DumpRenderTree -v LayoutTests/fast/forms/plaintext-mode-1.html }}}