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).
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();
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 on attachment 42560 [details] (committed in r50622) patch Seems plausible.
r50622