Changes between Initial Version and Version 1 of Rebaseline

Mar 22, 2010 9:46:06 AM (12 years ago)
Dimitri Glazkov

Ported rebaseline tool documentation from Chromium wiki


  • Rebaseline

    v1 v1  
     1The rebaselining tool automatically produces new expected results using the layout test results from buildbots. The goal is that after running this tool, the working copy will be ready to create a change containing all new baselines.
     3The tool is written in Python and lives in `WebKitTools/Scripts` ([]).
     5''pasted from [], needs editing''
     7== How does this tool work? ==
     8The script does the following for each platform:
     9  * Compile a list of tests that need rebaseline.
     10  * Download test result archive from buildbot for the platform.
     11  * Extract baselines from the archive file for all identified files.
     12  * Add new baselines to SVN repository. For GIT repository, you need to manually "git add" all the new baseline files.
     13  * For each test that has been rebaselined, remove this platform option from the test in _test_expectation.txt_. If no other platform options remaining after removal, delete the test from the file.
     15After new baselines are generated, the tool launches a html page to compare the old and new baselines. The html can be disabled by option "--no_html_results".
     17== How to use it? ==
     18  * Make sure the test files (.html) exist at _src\webkit\data\layout_tests_ in repository. If not, add the html files there and commit them. By default, the rebaselining tool retrieves new baselines from the release version of buildbot layout test archive. If you add a new test, you need to wait for buildbot to run layout tests and the actual result for the test has been archived before you can rebaseline it using this tool. Check the *RELEASE* version of [ buildbot layout archive] to see whether your new test is available.
     19  * Update _test_expectations.txt_ at _src\webkit\tools\layout_tests_: add option *REBASELINE* to the tests that need to be rebaselined.
     20  * Run rebaselining script: *rebaseline.bat* for Windows and ** for Linux and Mac. The script can be found at _src\webkit\tools\layout_tests_. If you want to pull new baselines from canary, run rebaseline.bat or with option *--webkit_canary*.
     21  * If the script runs successfully, new baselines (expected files) are added to SVN repository and the rebaselined tests are removed from _test_expectations.txt_.
     22  * The tool launches a html page to compare the old and new baselines. Check the new baseline changes are expected.
     23  * Prepare a patch with the new baselines and _test_expectations.txt_, review the changes and then commit the patch.
     25== Examples ==
     26We need rebaseline test _LayoutTests/foo1.html_ for all three platforms and test _LayoutTests/foo2.html_ for *win* and *linux*.
     28  * Make sure test files _foo1.html_ and _foo2.html_ have been committed at _src\webkit\data\layout_tests\LayoutTests_. If these are tests just added, make sure the layout tests ran at buildbot and the test results have been archived.
     29  * Update _test_expectations.txt_ to include the following lines:
     31BUG1234 REBASELINE : LayoutTests/foo1.html = FAIL
     32BUG5678 REBASELINE WIN LINUX : LayoutTests/foo2.html = FAIL
     35   If foo1 and foo2 already exist, add option "*REBASELINE*" to the existing tests.
     36  * Run rebaseline script on *Windows* machine:
     38  open a command window
     39  change the directory to [YOUR CHROMUIM DIRECTORY]\src\webkit\tools\layout_tests
     40  rebaseline.bat
     43  * Run rebaseline script on *Linux* or *Mac* machine
     45  open a shell
     46  change the directory to [YOUR CHROMUIM DIRECTORY]/src/webkit/tools/layout_tests
     47  ./
     50  NOTE: *you only need to run the script on ONE platform. The tool will auto generate new baselines for ALL three platforms*.
     52  * Check tests foo1 and foo2 are removed from test_expectations.txt.
     54  * Create a patch
     56gcl change [YOUR PATCH NAME]
     58  Review the changes and then commit it.  Don't check in with any tests still marked REBASELINE, as this will prevent others from cleanly using the tool.
     60  * The tool launches a html to compare new baselines with old baselines. Here is an example of the baseline result comparison html:
     61  [ Baseline Result Comparison HTML]
     63== Notes to GIT user ==
     64If you are using GIT repository, you need to manually "git add" all the new baseline files before creating patch.