Bug 116878

Summary: fourthTier: fast/js should have a way of running tests long enough to wait for the concurrent JIT to tier up
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: Tools / TestsAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, ggaren, mark.lam, mhahnenberg, msaboff, oliver, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch oliver: review+

Description Filip Pizlo 2013-05-28 11:59:25 PDT
This bug will just implement the facility and convert one test to use the facility, and later I'll work on converting all of the fast/js/dfg-* tests.
Comment 1 Filip Pizlo 2013-05-28 12:07:35 PDT
Here's what failure looks like.  Note that this test would have passed a bunch of calls as well, but we don't show passes now, because the number of passes is variable and so it would screw up the text diff.

[pizlo@bigmac OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Debug/ WebKitBuild/Debug/DumpRenderTree LayoutTests/fast/js/dfg-arguments-osr-exit-multiple-blocks.html 
Content-Type: text/plain
DumpMalloc: 0
Tests aliased uses of 'arguments' that require reification of the Arguments object on OSR exit, in the case that there is some interesting control flow.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
FAIL bar(42) should be 74. Was 32.
Passed some tests silently.

TEST COMPLETE

#EOF
Comment 2 Filip Pizlo 2013-05-28 12:08:05 PDT
And here's what passing looks like now:

[pizlo@bigmac OpenSource] DYLD_FRAMEWORK_PATH=WebKitBuild/Debug/ WebKitBuild/Debug/DumpRenderTree LayoutTests/fast/js/dfg-arguments-osr-exit-multiple-blocks.html 
Content-Type: text/plain
DumpMalloc: 0
Tests aliased uses of 'arguments' that require reification of the Arguments object on OSR exit, in the case that there is some interesting control flow.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


Passed some tests silently.

TEST COMPLETE

#EOF
Comment 3 Filip Pizlo 2013-05-28 12:14:07 PDT
Created attachment 203075 [details]
Patch
Comment 4 Oliver Hunt 2013-05-28 12:17:47 PDT
Comment on attachment 203075 [details]
Patch

rs=me for the rest
Comment 5 Filip Pizlo 2013-05-28 12:37:04 PDT
Landed in http://trac.webkit.org/changeset/150825