Changeset 234077 in webkit


Ignore:
Timestamp:
Jul 20, 2018 5:41:44 PM (6 years ago)
Author:
sihui_liu@apple.com
Message:

[ MacOS iOS ] Layout Test storage/indexeddb/modern/opendatabase-after-storage-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=187648
<rdar://problem/42405935>

Reviewed by Brady Eidson.

Make test wait until requests finish to get correct result, because indexedDB operations are asynchronous.

  • storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt:
  • storage/indexeddb/modern/opendatabase-after-storage-crash.html:
Location:
trunk/LayoutTests
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r234073 r234077  
     12018-07-20  Sihui Liu  <sihui_liu@apple.com>
     2
     3        [ MacOS iOS ] Layout Test storage/indexeddb/modern/opendatabase-after-storage-crash.html is flaky
     4        https://bugs.webkit.org/show_bug.cgi?id=187648
     5        <rdar://problem/42405935>
     6
     7        Reviewed by Brady Eidson.
     8
     9        Make test wait until requests finish to get correct result, because indexedDB operations are asynchronous.
     10
     11        * storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt:
     12        * storage/indexeddb/modern/opendatabase-after-storage-crash.html:
     13
    1142018-07-19  Simon Fraser  <simon.fraser@apple.com>
    215
  • trunk/LayoutTests/platform/wk2/TestExpectations

    r234015 r234077  
    737737
    738738http/tests/navigation/useragent-reload.php [ Pass ]
    739 webkit.org/b/187648 storage/indexeddb/modern/opendatabase-after-storage-crash.html [ Pass Failure ]
     739storage/indexeddb/modern/opendatabase-after-storage-crash.html [ Pass ]
    740740
    741741
  • trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt

    r233562 r234077  
    1 Successfully opened the database in a new document
     1PASS sessionStorage[storageKey] is "Made it"
     2Successfully opened database with version 3.
  • trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash.html

    r233662 r234077  
    22<script src="../resources/shared.js"></script>
    33<body>
    4 If this test completes quickly instead of hanging indefinitely, it has passed.
     4This test verifies when storage process crashes, indexedDB operation should not hang indefinitely.
    55</body>
    66<script>
     
    1313        var request = window.indexedDB.open(dbname, 2);
    1414        request.onupgradeneeded = function(e) {
    15                 document.body.innerHTML = "openDatabase call after storage process termination should not have resulted in upgradeneeded";
     15                document.body.innerHTML = "Unexpected upgradeneeded after storage process termination. Database: name " + dbname + ", version 2.";
    1616                if (window.testRunner)
    1717                        testRunner.notifyDone();
     18        }
    1819
    19         }
    20        
    2120        request.onerror = function(e) {
    2221                // Good, we received an expected error.
    2322                // Now reload to see if a new document connects successfully
    2423                if (sessionStorage[storageKey]) {
    25                         document.body.innerHTML = "Should not have reached this code twice!";
     24                        document.body.innerHTML = "Received error more than once unexpectedly. Database: name " + dbname + ", version 2.";
    2625                        if (window.testRunner)
    2726                                testRunner.notifyDone();
    2827                        return;
    2928                }
    30                
     29
    3130                sessionStorage[storageKey] = "Made it";
    3231                location.reload();
     
    3433
    3534        request.onsuccess = function(e) {
    36                 document.body.innerHTML = "Unexpected success during the second database open after document load. SessionStorage value: " + sessionStorage[storageKey];
     35                document.body.innerHTML = "Unexpected upgradeneeded after storage process termination. Database: name " + dbname + ", version 2. SessionStorage value: " + sessionStorage[storageKey] + ".";
    3736                if (window.testRunner)
    3837                        testRunner.notifyDone();
     
    4039}
    4140
    42 var versionToOpen = sessionStorage.finishedFirstOpen ? 3 : 1;
     41var versionToOpen = sessionStorage.doneFirstLoad ? 3 : 1;
    4342var request = window.indexedDB.open(dbname, versionToOpen);
     43
    4444request.onupgradeneeded = function(e) {
    45         if (sessionStorage.finishedFirstOpen) {
    46                 document.body.innerHTML = "";
    47                 if (sessionStorage[storageKey] != "Made it")
    48                         document.body.innerHTML += "Expected error in the first pass of the test was NOT logged<br>";
    49                 document.body.innerHTML += "Successfully opened the database in a new document"
     45        if (sessionStorage.doneFirstLoad) {
     46                document.body.innerHTML = "Successfully opened database with version " + versionToOpen + ".";
     47                shouldBeEqualToString('sessionStorage[storageKey]', 'Made it');
     48
    5049                if (window.testRunner)
    5150                        testRunner.notifyDone();
    5251        }
    5352       
    54         sessionStorage.finishedFirstOpen = true;
    55        
    56         if (window.testRunner)
    57                 testRunner.terminateStorageProcess();
     53        sessionStorage.doneFirstLoad = true;
    5854
    5955        // Set an error handler on the database connection so once the storage process terminates we know to continue the test
     
    6157                setTimeout(continueTest, 0);
    6258        }
     59
     60        if (window.testRunner) {
     61                testRunner.waitUntilDone();
     62                testRunner.terminateStorageProcess();
     63        }
    6364}
    6465
    6566request.onerror = function(e) {
    66         document.body.innerHTML = "Unexpected error during the first database open on document load. Message: " + e.message + ". DB opening: " + dbname + ". Version opening: " + versionToOpen + ". SessionStorage value: " + sessionStorage[storageKey];
    67         if (window.testRunner)
    68                 testRunner.notifyDone();
     67        if (versionToOpen == 1)
     68                document.body.innerHTML = "Error on opening reuqest for database version 1. (FAIL: test should stop at opening version 3.)";
    6969}
    7070
    7171request.onsuccess = function(e) {
    72         document.body.innerHTML = "Unexpected success during the first database open on document load. DB opening: " + dbname + ". Version opening: " + versionToOpen + ". SessionStorage value: " + sessionStorage[storageKey];
    73         if (window.testRunner)
    74                 testRunner.notifyDone();
     72        if (versionToOpen == 1)
     73                document.body.innerHTML = "Success on opening reuqest for database version 1. (FAIL: test should stop at opening version 3.)";
    7574}
    7675
Note: See TracChangeset for help on using the changeset viewer.