Bug 48043

Summary: TestWebKitAPI should detect test hangs
Product: WebKit Reporter: Adam Roben (:aroben) <aroben>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, dslomov, sam
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 61088    
Bug Blocks: 57513    
Attachments:
Description Flags
Adding hang-detection to run-api-tests
none
New, smaller patch none

Description Adam Roben (:aroben) 2010-10-20 23:10:10 PDT
If a test hangs, TestWebKitAPI will never exit and run-api-tests will hang forever. TestWebKitAPI should detect when a test hangs and print out a failure message.
Comment 1 Adam Roben (:aroben) 2010-11-04 07:54:46 PDT
<rdar://problem/8630444>
Comment 2 Dmitry Lomov 2011-05-18 11:36:03 PDT
Created attachment 93953 [details]
Adding hang-detection to run-api-tests

I returned back to running tests one-by-one and original run-api-tests output format.
Comment 3 Adam Roben (:aroben) 2011-05-18 11:39:59 PDT
Comment on attachment 93953 [details]
Adding hang-detection to run-api-tests

Can we do this in two pieces? 1) Go back to running tests singly, 2) add hang detection? It's hard to review both at once.
Comment 4 Dmitry Lomov 2011-05-18 11:41:45 PDT
(In reply to comment #3)
> (From update of attachment 93953 [details])
> Can we do this in two pieces? 1) Go back to running tests singly, 2) add hang detection? It's hard to review both at once.

sure - do you want a separate issue for the 1st?
Comment 5 Adam Roben (:aroben) 2011-05-18 11:47:06 PDT
(In reply to comment #4)
> (In reply to comment #3)
> > (From update of attachment 93953 [details] [details])
> > Can we do this in two pieces? 1) Go back to running tests singly, 2) add hang detection? It's hard to review both at once.
> 
> sure - do you want a separate issue for the 1st?

Doesn't matter to me. Thanks!
Comment 6 Dmitry Lomov 2011-05-19 17:39:58 PDT
Created attachment 94152 [details]
New, smaller patch
Comment 7 Adam Roben (:aroben) 2011-05-19 17:44:42 PDT
Comment on attachment 94152 [details]
New, smaller patch

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

> Tools/Scripts/run-api-tests:177
> +        eval {
> +            local $SIG{ALRM} = sub { die "alarm\n" };
> +            alarm $timeout;
> +            waitpid($pid, 0);
> +            alarm 0;
> +            $result = $?;
> +        };
> +        if ($@) {
> +            die unless $@ eq "alarm\n";
> +            kill SIGTERM, $pid or kill SIGKILL, $pid;
> +            $timedOut = 1;
> +        };

It's too bad we can't share more of this code between Mac and Windows.

No need for the semicolon after the if braces.

> Tools/Scripts/run-api-tests:196
> +        if ($@) {
> +            die unless $@ eq "alarm\n";
> +            $timedOut = 1;
> +        };

No need for the semicolon after the closing brace.
Comment 8 WebKit Commit Bot 2011-05-19 21:10:59 PDT
Comment on attachment 94152 [details]
New, smaller patch

Clearing flags on attachment: 94152

Committed r86922: <http://trac.webkit.org/changeset/86922>
Comment 9 WebKit Commit Bot 2011-05-19 21:11:04 PDT
All reviewed patches have been landed.  Closing bug.