Changes between Version 8 and Version 9 of RebaselineServer
- Timestamp:
- Jun 29, 2016, 3:52:13 AM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RebaselineServer
v8 v9 3 3 The "Rebaseline Server" is a tool that makes it easy to do "mass" rebaselines (updating of pixel or text baselines for dozens or hundreds of layout tests). It makes it easy to review changes to baselines and update existing ones (and optionally move them, to handle OS transitions). It's known as a ''server'' because it runs a local HTTP server which makes it easy to have a cross-platform GUI for reviewing that is backed by Python code for doing the SCM (SVN/Git) operations on the filesystem. 4 4 5 To use the tool, run: `webkit-patch rebaseline-server WebKitBuild/{Debug|Release}/layout-test-results` (after having run ` new-run-webkit-tests`). Once the GUI that runs at http://localhost:8127 launches, you can inspect results and add tests that you wish to rebaseline to the queue. Once you have enqueued enough tests, you can process the queue, which will do the necessary Git/SVN operations. You can then submit those changes as usual with `webkit-patch`.5 To use the tool, run: `webkit-patch rebaseline-server WebKitBuild/{Debug|Release}/layout-test-results` (after having run `run-webkit-tests`). Once the GUI that runs at http://localhost:8127 launches, you can inspect results and add tests that you wish to rebaseline to the queue. Once you have enqueued enough tests, you can process the queue, which will do the necessary Git/SVN operations. You can then submit those changes as usual with `webkit-patch`. 6 6 7 7 See the [#UIWalkthrough UI walkthrough] and [#SampleUsages sample usages] below for more details. … … 67 67 Snow Leopard has a different text anti-aliasing algorithm (and other small rendering tweaks) which requires many pixel baselines to be updated. The flow for doing this would be. 68 68 69 1. (On a Snow Leopard machine) run ` new-run-webkit-tests --tolerance 0 --pixel-tests [path/to/tests]` (or omit the path to run all tests)69 1. (On a Snow Leopard machine) run `run-webkit-tests --tolerance 0 --pixel-tests [path/to/tests]` (or omit the path to run all tests) 70 70 1. Observe that many tests failed with imaged differences 71 71 1. Run `webkit-patch rebaseline-server WebKitBuild/{Debug|Release}/layout-test-results` (or wherever your layout test results are localed) … … 82 82 [http://code.google.com/p/skia/ Skia] is the graphics library used by the Chromium port on Windows and Linux; changes to it often require updates to pixel baselines. 83 83 84 1. (On a Windows or Linux machine) run ` new-run-webkit-tests --tolerance 0 --pixel-tests [path/to/tests]` (or omit the path to run all tests)84 1. (On a Windows or Linux machine) run `run-webkit-tests --tolerance 0 --pixel-tests [path/to/tests]` (or omit the path to run all tests) 85 85 1. Observe that many tests failed with imaged differences 86 86 1. Run `webkit-patch rebaseline-server WebKitBuild/{Debug|Release}/layout-test-results` (or wherever your layout test results are localed) … … 97 97 The Python server lives at [http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/tool/commands/rebaselineserver.py Tools/Scripts/webkitpy/tool/commands/rebaselineserver.py], the GUI is at [http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/tool/commands/data/rebaselineserver/ Tools/Scripts/webkitpy/tool/commands/data/rebaselineserver/]. 98 98 99 The Python server parses the `unexpected_results.json`file [http://www.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&q=unexpected_results%20file:webkitpy&exact_package=chromium&l=823 generated] by ` new-run-webkit-tests`. It then starts [http://docs.python.org/library/basehttpserver.html an HTTP server]. That server can respond with the list of failing tests, expected/actual output for a test (read from the test results directory), or to commands to rebaseline tests. The latter is done by using the [http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/checkout/scm.py scm.py] wrapper that makes it agnostic to Git vs. SVN checkouts.99 The Python server parses the `unexpected_results.json`file [http://www.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&q=unexpected_results%20file:webkitpy&exact_package=chromium&l=823 generated] by `run-webkit-tests`. It then starts [http://docs.python.org/library/basehttpserver.html an HTTP server]. That server can respond with the list of failing tests, expected/actual output for a test (read from the test results directory), or to commands to rebaseline tests. The latter is done by using the [http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/checkout/scm.py scm.py] wrapper that makes it agnostic to Git vs. SVN checkouts. 100 100 101 101 The UI populates various `<select>`s based on the test output, grouping results by failure type, directory and test. The "loupe" functionality is accomplished by rendering pixel tests into a `<canvas>` and then drawing the enlarged pixels into another <canvas>` (see `loupe.js`). The queue is maintained as a <select>` as well (see `queue.js`). … … 103 103 == Caveats/Limitations == 104 104 105 * `new-run-webkit-tests` must be used (the tool currently relies on the JSON output that only NRWT produces)106 105 * The tool can currently only use local test results, it cannot pull from bots 107 106 * The UI works best on a 30 inch monitor