WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
168580
JSC should have a marathon test mode
https://bugs.webkit.org/show_bug.cgi?id=168580
Summary
JSC should have a marathon test mode
Filip Pizlo
Reported
2017-02-19 17:49:21 PST
JSC tests currently run in a process per test. But running all tests in one process will help catch more GC bugs because it creates a very polluted heap. We should run a new test mode, called marathon, that runs a bunch of tests in a single process. It should run concurrently to the other tests.
Attachments
the patch
(13.67 KB, patch)
2017-02-19 17:54 PST
,
Filip Pizlo
ysuzuki
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2017-02-19 17:54:27 PST
Created
attachment 302103
[details]
the patch It'll be hard to land this because it finds crashes.
WebKit Commit Bot
Comment 2
2017-02-19 17:55:49 PST
Attachment 302103
[details]
did not pass style-queue: ERROR: Tools/ChangeLog:1: ChangeLog entry has no bug number [changelog/bugnumber] [5] ERROR: Source/WTF/wtf/NumberOfCores.cpp:53: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] Total errors found: 2 in 10 files If any of these errors are false positives, please file a bug against check-webkit-style.
Sam Weinig
Comment 3
2017-02-20 17:21:07 PST
Disappointed to see this was not you implementing Bungie's Marathon (
https://en.wikipedia.org/wiki/Marathon_(video_game
)) in the jsc shell.
Yusuke Suzuki
Comment 4
2017-03-05 22:09:28 PST
Comment on
attachment 302103
[details]
the patch View in context:
https://bugs.webkit.org/attachment.cgi?id=302103&action=review
r=me
> JSTests/stress/marathon.js:14 > + string = "quit = function() { throw new Error(\"---CALLED-QUIT---\"); }\n" + string;
I recommend to add the stub for `abort()` too.
> Source/JavaScriptCore/jsc.cpp:1372 > + addFunction(vm, "callInDirectory", functionCallInDirectory, 2);
Let's put `#if !OS(WINDOWS)` things to fix build failure in Windows.
> Source/JavaScriptCore/jsc.cpp:2665 > + int previousDirectoryFD = open(".", O_RDONLY);
Let's add necessary headers to fix GTK build failures (maybe, `sys/stat.h` and `fcntl.h`.)
> Source/JavaScriptCore/jsc.cpp:2667 > + int myErrno = errno;
`myErrno` variable can be dropped.
> Source/JavaScriptCore/jsc.cpp:2668 > + return JSValue::encode(throwException(exec, scope, createError(exec, toString("Cannot open current directory: ", strerror(myErrno)))));
How about using `throwVMError`?
> Source/JavaScriptCore/jsc.cpp:2673 > + int myErrno = errno;
Ditto.
> Source/JavaScriptCore/jsc.cpp:2674 > + return JSValue::encode(throwException(exec, scope, createError(exec, toString("Cannot change directory to ", fileName, ": ", strerror(myErrno)))));
Ditto.
> Source/JavaScriptCore/jsc.cpp:2682 > + return JSValue::encode(throwException(exec, scope, createError(exec, ASCIILiteral("Expected callback"))));
Use throwVMError.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug