Changeset 86408 in webkit


Ignore:
Timestamp:
May 12, 2011 6:52:42 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-05-12 David Grogan <dgrogan@chromium.org>

Reviewed by Darin Adler.

make layout tests in storage/domstorage/events more deterministic
https://bugs.webkit.org/show_bug.cgi?id=60299

Instead of counting the number of storage events fired between two
setTimeout(0) events, specify the number of events to wait for and wait up to
1 second for them.

  • storage/domstorage/events/resources/eventTestHarness.js: (runAfterNStorageEvents): (countStorageEvents.onTimeout): (countStorageEvents): (testStorages.allDone):
  • storage/domstorage/events/script-tests/basic-body-attribute.js: (step1): (step2): (step3): (step4): (step5):
  • storage/domstorage/events/script-tests/basic-setattribute.js: (step1): (step2): (step3): (step4): (step5):
  • storage/domstorage/events/script-tests/basic.js: (test): (step1): (step2): (step3): (step4): (step5):
  • storage/domstorage/events/script-tests/case-sensitive.js: (test): (step1): (step2):
  • storage/domstorage/events/script-tests/documentURI.js: (test): (step1): (step2):
Location:
trunk/LayoutTests
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r86402 r86408  
     12011-05-12  David Grogan  <dgrogan@chromium.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        make layout tests in storage/domstorage/events more deterministic
     6        https://bugs.webkit.org/show_bug.cgi?id=60299
     7
     8        Instead of counting the number of storage events fired between two
     9        setTimeout(0) events, specify the number of events to wait for and wait up to
     10        1 second for them.
     11
     12        * storage/domstorage/events/resources/eventTestHarness.js:
     13        (runAfterNStorageEvents):
     14        (countStorageEvents.onTimeout):
     15        (countStorageEvents):
     16        (testStorages.allDone):
     17        * storage/domstorage/events/script-tests/basic-body-attribute.js:
     18        (step1):
     19        (step2):
     20        (step3):
     21        (step4):
     22        (step5):
     23        * storage/domstorage/events/script-tests/basic-setattribute.js:
     24        (step1):
     25        (step2):
     26        (step3):
     27        (step4):
     28        (step5):
     29        * storage/domstorage/events/script-tests/basic.js:
     30        (test):
     31        (step1):
     32        (step2):
     33        (step3):
     34        (step4):
     35        (step5):
     36        * storage/domstorage/events/script-tests/case-sensitive.js:
     37        (test):
     38        (step1):
     39        (step2):
     40        * storage/domstorage/events/script-tests/documentURI.js:
     41        (test):
     42        (step1):
     43        (step2):
     44
    1452011-05-12  Andrew Wilson  <atwilson@chromium.org>
    246
  • trunk/LayoutTests/storage/domstorage/events/resources/eventTestHarness.js

    r53840 r86408  
    1414}
    1515
    16 function runAfterStorageEvents(callback) {
    17     var currentCount = storageEventList.length;
    18     function onTimeout() {
    19         if (currentCount != storageEventList.length)
    20             runAfterStorageEvents(callback);
    21         else
     16function runAfterNStorageEvents(callback, expectedNumEvents)
     17{
     18    countStorageEvents(callback, expectedNumEvents, 0)
     19}
     20
     21function countStorageEvents(callback, expectedNumEvents, times)
     22{
     23    function onTimeout()
     24    {
     25        var currentCount = storageEventList.length;
     26        if (currentCount == expectedNumEvents)
    2227            callback();
     28        else if (currentCount > expectedNumEvents) {
     29            testFailed("got at least " + currentCount + ", expected only " + expectedNumEvents + " events");
     30            callback();
     31        } else if (times > 50) {
     32            testFailed("Timeout: only got " + currentCount + ", expected " + expectedNumEvents + " events");
     33            callback();
     34        } else
     35            countStorageEvents(callback, expectedNumEvents, times+1)
    2336    }
    24     setTimeout(onTimeout, 0);
     37    setTimeout(onTimeout, 20);
    2538}
    2639
     
    3548        isSuccessfullyParsed();
    3649        debug("");
     50        localStorage.clear();
     51        sessionStorage.clear();
    3752        if (window.layoutTestController)
    3853            layoutTestController.notifyDone()
  • trunk/LayoutTests/storage/domstorage/events/script-tests/basic-body-attribute.js

    r53840 r86408  
    2525    evalAndLog("storage.setItem('FOO', 'BAR')");
    2626
    27     runAfterStorageEvents(step2);
     27    runAfterNStorageEvents(step2, 1);
    2828}
    2929
     
    3939    evalAndLog("storage.setItem('b', '3')");
    4040
    41     runAfterStorageEvents(step3);
     41    runAfterNStorageEvents(step3, 5);
    4242}
    4343
     
    5959    evalAndLog("storage.removeItem('FOO')");
    6060
    61     runAfterStorageEvents(step4);
     61    runAfterNStorageEvents(step4, 6);
    6262}
    6363
     
    7070    evalAndLog("storage.removeItem('FU')");
    7171
    72     runAfterStorageEvents(step5);
     72    runAfterNStorageEvents(step5, 7);
    7373}
    7474
     
    8181    evalAndLog("storage.clear()");
    8282 
    83     runAfterStorageEvents(step6);
     83    runAfterNStorageEvents(step6, 8);
    8484}
    8585
  • trunk/LayoutTests/storage/domstorage/events/script-tests/basic-setattribute.js

    r53840 r86408  
    2525    evalAndLog("storage.setItem('FOO', 'BAR')");
    2626
    27     runAfterStorageEvents(step2);
     27    runAfterNStorageEvents(step2, 1);
    2828}
    2929
     
    3939    evalAndLog("storage.setItem('b', '3')");
    4040
    41     runAfterStorageEvents(step3);
     41    runAfterNStorageEvents(step3, 5);
    4242}
    4343
     
    5959    evalAndLog("storage.removeItem('FOO')");
    6060
    61     runAfterStorageEvents(step4);
     61    runAfterNStorageEvents(step4, 6);
    6262}
    6363
     
    7070    evalAndLog("storage.removeItem('FU')");
    7171
    72     runAfterStorageEvents(step5);
     72    runAfterNStorageEvents(step5, 7);
    7373}
    7474
     
    8181    evalAndLog("storage.clear()");
    8282 
    83     runAfterStorageEvents(step6);
     83    runAfterNStorageEvents(step6, 8);
    8484}
    8585
  • trunk/LayoutTests/storage/domstorage/events/script-tests/basic.js

    r53840 r86408  
    1212    debug("Testing " + storageString);
    1313
     14    storageEventList = new Array();
    1415    evalAndLog("storage.clear()");
    1516    shouldBe("storage.length", "0");
    1617
    17     runAfterStorageEvents(step1);
     18    runAfterNStorageEvents(step1, 0);
    1819}
    1920
     
    2425    evalAndLog("storage.setItem('FOO', 'BAR')");
    2526
    26     runAfterStorageEvents(step2);
     27    runAfterNStorageEvents(step2, 1);
    2728}
    2829
     
    3839    evalAndLog("storage.setItem('b', '3')");
    3940
    40     runAfterStorageEvents(step3);
     41    runAfterNStorageEvents(step3, 5);
    4142}
    4243
     
    5859    evalAndLog("storage.removeItem('FOO')");
    5960
    60     runAfterStorageEvents(step4);
     61    runAfterNStorageEvents(step4, 6);
    6162}
    6263
     
    6970    evalAndLog("storage.removeItem('FU')");
    7071
    71     runAfterStorageEvents(step5);
     72    runAfterNStorageEvents(step5, 7);
    7273}
    7374
     
    8081    evalAndLog("storage.clear()");
    8182 
    82     runAfterStorageEvents(step6);
     83    runAfterNStorageEvents(step6, 8);
    8384}
    8485
  • trunk/LayoutTests/storage/domstorage/events/script-tests/case-sensitive.js

    r53840 r86408  
    1212    debug("Testing " + storageString);
    1313
     14    storageEventList = new Array();
    1415    evalAndLog("storage.clear()");
    1516    shouldBe("storage.length", "0");
     
    1920    evalAndLog("storage.foo = 'test'");
    2021
    21     runAfterStorageEvents(step1);
     22    runAfterNStorageEvents(step1, 1);
    2223}
    2324
     
    2829    evalAndLog("storage.foo = 'test'");
    2930
    30     runAfterStorageEvents(step2);
     31    runAfterNStorageEvents(step2, 0);
    3132}
    3233
     
    3637    evalAndLog("storage.foo = 'TEST'");
    3738
    38     runAfterStorageEvents(step3);
     39    runAfterNStorageEvents(step3, 1);
    3940}
    4041
  • trunk/LayoutTests/storage/domstorage/events/script-tests/documentURI.js

    r58571 r86408  
    1212    debug("Testing " + storageString);
    1313
     14    storageEventList = new Array();
    1415    evalAndLog("storage.clear()");
    1516    shouldBe("storage.length", "0");
    1617
    17     runAfterStorageEvents(step1);
     18    runAfterNStorageEvents(step1, 0);
    1819}
    1920
     
    2425    evalAndLog("storage.foo = '123'");
    2526
    26     runAfterStorageEvents(step2);
     27    runAfterNStorageEvents(step2, 1);
    2728}
    2829
     
    3738    evalAndLog("storage.foo = 'xyz'");
    3839
    39     runAfterStorageEvents(step3);
     40    runAfterNStorageEvents(step3, 2);
    4041}
    4142
Note: See TracChangeset for help on using the changeset viewer.