Changeset 69469 in webkit


Ignore:
Timestamp:
Oct 10, 2010 12:46:12 PM (14 years ago)
Author:
mihaip@chromium.org
Message:

2010-10-10 Mihai Parparita <mihaip@chromium.org>

Reviewed by Adam Barth.

<a ping> tests are slow
https://bugs.webkit.org/show_bug.cgi?id=47431

The ping tests showed up as being flaky in Adam Barth's email; this
might just be due to them being on the slow side due to the 1 second
refresh in check-ping.php. We can instead switch to using file_exists
in a loop if we invalidate the file status cache. Running the three
ping tests with --iterations=10 now takes 4 seconds instead of 23.

This surfaces a race condition in image-load-in-unload-handler.html
(we don't start sending data till we get the ping, but unload handlers
(where the ping is sent) aren't run till we start getting data). Fixed
by adding a dummy page in between.

  • http/tests/navigation/resources/check-ping.php:
  • http/tests/navigation/image-load-in-unload-handler.html:
  • http/tests/navigation/resources/ping-redirect.html: Added.
Location:
trunk/LayoutTests
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r69468 r69469  
     12010-10-10  Mihai Parparita  <mihaip@chromium.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        <a ping> tests are slow
     6        https://bugs.webkit.org/show_bug.cgi?id=47431
     7       
     8        The ping tests showed up as being flaky in Adam Barth's email; this
     9        might just be due to them being on the slow side due to the 1 second
     10        refresh in check-ping.php. We can instead switch to using file_exists
     11        in a loop if we invalidate the file status cache. Running the three
     12        ping tests with --iterations=10 now takes 4 seconds instead of 23.
     13       
     14        This surfaces a race condition in image-load-in-unload-handler.html
     15        (we don't start sending data till we get the ping, but unload handlers
     16        (where the ping is sent) aren't run till we start getting data). Fixed
     17        by adding a dummy page in between.
     18
     19        * http/tests/navigation/resources/check-ping.php:
     20        * http/tests/navigation/image-load-in-unload-handler.html:
     21        * http/tests/navigation/resources/ping-redirect.html: Added.
     22
    1232010-10-10  Robert Hogan  <robert@webkit.org>
    224
  • trunk/LayoutTests/http/tests/navigation/image-load-in-unload-handler.html

    r65910 r69469  
    1414        return;
    1515    }
    16     location.assign("resources/check-ping.php");
     16    // We can't go to check-ping.php directly, since that doesn't start sending
     17    // a response until the ping data is detected, but unload handlers (where
     18    // we send the ping) are only run once we've begun receiving data from the
     19    // page being navigated to. Instead, we go through a dummy redirect page,
     20    // to make sure that the onunload handler has run before we get to
     21    // check-ping.php.
     22    location.assign("resources/ping-redirect.html");
    1723}
    1824
  • trunk/LayoutTests/http/tests/navigation/resources/check-ping.php

    r68166 r69469  
    11<?php
    2 if (!file_exists("ping.txt")) {
    3     $page = $_SERVER['PHP_SELF'];
    4     // This refresh header is unfortunate, but if the file doesn't
    5     // exist when this php script starts running, it won't notice
    6     // its creation even if we sleep and check again.
    7     header("Refresh: 1; url=$page");
    8     return;
     2while (!file_exists("ping.txt")) {
     3    usleep(10000);
     4    // file_exists() caches results, we want to invalidate the cache.
     5    clearstatcache();
    96}
    107
Note: See TracChangeset for help on using the changeset viewer.