Sometimes I'd like to run a full layoutng test suite several times a day:
python third_party/WebKit/Tools/Scripts/run-webkit-tests --target=Optimized --additional-driver-flag=--enable-blink-features=LayoutNG
It takes 20 minutes, which is annoying, especially because it feels it should be faster. Those first 10K tests complete so fast...
startup: 25s
10K tests: 1:10
20K tests: 2:20
30K tests: 3:50
40K tests: 4:50
50K tests: 7:00
50800 tests: 18:20
50830 tests: 19:43
40 unexpected failures, retries.
Total time:
real 20m11s
user 32m12s
The end of the test run is dominated by few directories with lots of lengthy tests, many of which time out. So I hacked up the test runner to skip timeout tests, and this brought the total time down to 7 and a half minutes.
startup 25
10K: 59s
20K: 1:55
30K: 2:45
40K: 3:25
49700: 5:30
49910: 7:02
75 unexpected failures
real: 7m29s
user: 16m34s
Can we add a --skip-timeout flag to run-webkit-tests? I can contribute the patch that skips the tests, but I am not sure how to pass in the flag.
Part 2: running fully parallel
Running fully parallel should be faster. I was hoping for <5min, which would be awesome. It is not because we get many more unexpected failures:
Skip timeout tests, fully parallel
startup 25
10K: 2:11
20K: 4:18
30K: 6:29
40K: 8:35
49910: 10:55
182 unexpected failures
real: 12m5s
user: 39m2s
Looking at the failures, many of them are caused by content_shell having the wrong window size. My guess is that there is a test that resizes the window, and subsequent tests running in the same shell are stuck in wrong window size.
Is there a way for run-webkit-tests to reset the window size to 800x600 before each test?
Gimme these 2, and everyone will want to run full test suite locally.
Aleks