Bug 214193

Summary: Add some testing for JSRunLoopTimer
Product: WebKit Reporter: Geoffrey Garen <ggaren>
Component: New BugsAssignee: Geoffrey Garen <ggaren>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: darin, keith_miller, saam, ysuzuki
Priority: P2    
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch darin: review-

Description Geoffrey Garen 2020-07-10 12:29:26 PDT
Add some testing for JSRunLoopTimer
Comment 1 Geoffrey Garen 2020-07-10 12:38:39 PDT
Created attachment 403990 [details]
Patch
Comment 2 Geoffrey Garen 2020-07-10 13:57:01 PDT
I guess I'll just merge this into https://bugs.webkit.org/show_bug.cgi?id=214102

*** This bug has been marked as a duplicate of bug 214102 ***
Comment 3 Darin Adler 2020-07-10 14:14:37 PDT
Comment on attachment 403990 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=403990&action=review

> Tools/TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:66
> +    auto context = adoptNS([JSContext new]);

So retro to use new instead of alloc/init.

> Tools/TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:69
> +    while (!s_done) {

Need to set s_done to false in case IncrementalSweeperSecondaryThread test already ran? But what about objects left behind from running that test? Could they result in false negatives for this test?

> Tools/TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:73
> +                auto jsObject = adoptNS([JSValue valueWithObject:object.get() inContext:context.get()]);

This looks like an overrelease. Should not adopt the result of valueWithObject.

> Tools/TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:90
> +    while (!s_done) {

Need to set s_done to false in case IncrementalSweeperMainThread test already ran? But what about objects left behind from running that test? Could they result in false negatives for this test?

> Tools/TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:96
> +                        auto jsObject = adoptNS([JSValue valueWithObject:object.get() inContext:context.get()]);

This looks like an overrelease. Should not adopt the result of valueWithObject.