Bug 31164

Summary: [Qt] [DRT] Fix wrong logic in LayoutTestController processWork
Product: WebKit Reporter: Antonio Gomes <tonikitoo>
Component: Tools / TestsAssignee: Antonio Gomes <tonikitoo>
Status: RESOLVED FIXED    
Severity: Normal Keywords: Qt
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Bug Depends on:    
Bug Blocks: 30573    
Attachments:
Description Flags
(committed in r50622) patch none

Description Antonio Gomes 2009-11-05 05:02:23 PST
Qt's DRT logic for processing the WorkQueue is working differently from other DRT ports (e.g. mac, gtk and win):

void LayoutTestController::processWork()
  (..)
  if (!WorkQueue::shared()->processWork() && !shouldWaitUntilDone()) {
     emit done();


notice the first "!". It makes queue processing stop when if should proceed ('true' here means that queue is done and we are ok to finish).
Comment 1 Antonio Gomes 2009-11-05 05:03:01 PST
for reference:

GTK:
static gboolean processWork(void* data)
{
  // if we finish all the commands, we're ready to dump state
  if (WorkQueue::shared()->processWork() && !gLayoutTestController->waitToDump())
     dump();

WIN:
void FrameLoadDelegate::processWork()
{
  (...)
  // if we finish all the commands, we're ready to dump state
  if (WorkQueue::shared()->processWork() && !::gLayoutTestController->waitToDump())
    dump();

MAC:
- (void)processWork:(id)dummy
{
  (...)
  // if we finish all the commands, we're ready to dump state
  if (WorkQueue::shared()->processWork() && !gLayoutTestController->waitToDump())
    dump();
Comment 2 Antonio Gomes 2009-11-05 05:09:53 PST
Created attachment 42560 [details]
(committed in r50622) patch

patch make LayoutTestController::proccessWork to dump whole if WorkQueue returns 'true'

it makes qt compliant to other drt's (mac, win, gtk)
Comment 3 Holger Freyther 2009-11-07 00:32:56 PST
Comment on attachment 42560 [details]
(committed in r50622) patch

Seems plausible.
Comment 4 Antonio Gomes 2009-11-08 09:27:46 PST
r50622