Changes between Version 1 and Version 2 of RebaselineServer
- Timestamp:
- Dec 6, 2010, 2:10:14 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
RebaselineServer
v1 v2 2 2 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 5 == UI Walkthrough == 4 6 5 7 == Sample Usages == … … 15 17 1. From the footer of the UI, set the '''baseline target''' to `mac` (since we want the default `mac` port baselines to reflect the newest shipping OS) 16 18 1. Similarly, set the '''Move current baselines to:''' dropdown to `mac-leopard`, so that the existing baselines are still used for bots that are on Leopard 17 1. Refer to the UI walkthrough for more details on how to use the GUI 19 1. Refer to the [#UIWalkthrough UI walkthrough] for more details on how to use the GUI 20 1. Commit the result patch with `webkit-patch` as usual 18 21 19 22 If working on the Chromium port, the above steps can be used there too, except the baseline target is `chromium-mac` and existing baselines should be moved to `chromium-mac-leopard`. … … 29 32 1. From the footer of the UI, set the '''baseline target''' to `chromium-win` or `chromium-win` as appropriate. 30 33 1. Leave the '''Move current baselines to:''' dropdown set to `Nowhere (replace)` 31 1. Refer to the UI walkthrough for more details on how to use the GUI 34 1. Refer to the [#UIWalkthrough UI walkthrough] for more details on how to use the GUI 35 1. Commit the result patch with `webkit-patch` as usual 32 36 33 Note that if you'd like to rebaseline both Windows and Linux in the same patch, you'll need to run the tests on both platforms by hand and copy the results file to the machine that's running the rebaseline server. 34 35 == UI Walkthrough == 37 Note that if you'd like to rebaseline both Windows and Linux in the same patch, you'll need to run the tests on both platforms by hand and copy the results file to the machine that's running the rebaseline server (see the [#CaveatsLimitations caveats] section). 36 38 37 39 == Code location and design == … … 39 41 The Python server lives at [http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver.py WebKitTools/Scripts/webkitpy/tool/commands/rebaselineserver.py], the GUI is at [http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/ WebKitTools/Scripts/webkitpy/tool/commands/data/rebaselineserver/]. 40 42 43 The Python server parses the `unexpected_results.json`file [http://www.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/WebKitTools/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/WebKitTools/Scripts/webkitpy/common/checkout/scm.py scm.py] wrapper that makes it agnostic to Git vs. SVN checkouts. 44 45 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`). 41 46 42 47 == Caveats/Limitations ==