Title: [234077] trunk/LayoutTests
Revision
234077
Author
[email protected]
Date
2018-07-20 17:41:44 -0700 (Fri, 20 Jul 2018)

Log 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:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (234076 => 234077)


--- trunk/LayoutTests/ChangeLog	2018-07-21 00:30:09 UTC (rev 234076)
+++ trunk/LayoutTests/ChangeLog	2018-07-21 00:41:44 UTC (rev 234077)
@@ -1,3 +1,16 @@
+2018-07-20  Sihui Liu  <[email protected]>
+
+        [ 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:
+
 2018-07-19  Simon Fraser  <[email protected]>
 
         Remove completed animations from GraphicsLayer, thus avoiding excessive backing store allocation

Modified: trunk/LayoutTests/platform/wk2/TestExpectations (234076 => 234077)


--- trunk/LayoutTests/platform/wk2/TestExpectations	2018-07-21 00:30:09 UTC (rev 234076)
+++ trunk/LayoutTests/platform/wk2/TestExpectations	2018-07-21 00:41:44 UTC (rev 234077)
@@ -736,7 +736,7 @@
 http/wpt/cross-origin-resource-policy/ [ Pass ]
 
 http/tests/navigation/useragent-reload.php [ Pass ]
-webkit.org/b/187648 storage/indexeddb/modern/opendatabase-after-storage-crash.html [ Pass Failure ]
+storage/indexeddb/modern/opendatabase-after-storage-crash.html [ Pass ]
 
 
 ### END OF (5) Progressions, expected successes that are expected failures in WebKit1.

Modified: trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt (234076 => 234077)


--- trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt	2018-07-21 00:30:09 UTC (rev 234076)
+++ trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash-expected.txt	2018-07-21 00:41:44 UTC (rev 234077)
@@ -1 +1,2 @@
-Successfully opened the database in a new document
+PASS sessionStorage[storageKey] is "Made it"
+Successfully opened database with version 3.

Modified: trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash.html (234076 => 234077)


--- trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash.html	2018-07-21 00:30:09 UTC (rev 234076)
+++ trunk/LayoutTests/storage/indexeddb/modern/opendatabase-after-storage-crash.html	2018-07-21 00:41:44 UTC (rev 234077)
@@ -1,7 +1,7 @@
 <script src=""
 <script src=""
 <body>
-If this test completes quickly instead of hanging indefinitely, it has passed.
+This test verifies when storage process crashes, indexedDB operation should not hang indefinitely.
 </body>
 <script>
 
@@ -12,66 +12,65 @@
 {
 	var request = window.indexedDB.open(dbname, 2);
 	request._onupgradeneeded_ = function(e) {
-		document.body.innerHTML = "openDatabase call after storage process termination should not have resulted in upgradeneeded";
+		document.body.innerHTML = "Unexpected upgradeneeded after storage process termination. Database: name " + dbname + ", version 2.";
 		if (window.testRunner)
 			testRunner.notifyDone();
+	}
 
-	}
-	
 	request._onerror_ = function(e) {
 		// Good, we received an expected error.
 		// Now reload to see if a new document connects successfully
 		if (sessionStorage[storageKey]) {
-			document.body.innerHTML = "Should not have reached this code twice!";
+			document.body.innerHTML = "Received error more than once unexpectedly. Database: name " + dbname + ", version 2.";
 			if (window.testRunner)
 				testRunner.notifyDone();
 			return;
 		}
-		
+
 		sessionStorage[storageKey] = "Made it";
 		location.reload();
 	}
 
 	request._onsuccess_ = function(e) {
-		document.body.innerHTML = "Unexpected success during the second database open after document load. SessionStorage value: " + sessionStorage[storageKey];
+		document.body.innerHTML = "Unexpected upgradeneeded after storage process termination. Database: name " + dbname + ", version 2. SessionStorage value: " + sessionStorage[storageKey] + ".";
 		if (window.testRunner)
 			testRunner.notifyDone();
 	}
 }
 
-var versionToOpen = sessionStorage.finishedFirstOpen ? 3 : 1;
+var versionToOpen = sessionStorage.doneFirstLoad ? 3 : 1;
 var request = window.indexedDB.open(dbname, versionToOpen);
+
 request._onupgradeneeded_ = function(e) {
-	if (sessionStorage.finishedFirstOpen) {
-		document.body.innerHTML = "";
-		if (sessionStorage[storageKey] != "Made it")
-			document.body.innerHTML += "Expected error in the first pass of the test was NOT logged<br>";
-		document.body.innerHTML += "Successfully opened the database in a new document"
+	if (sessionStorage.doneFirstLoad) {
+		document.body.innerHTML = "Successfully opened database with version " + versionToOpen + ".";
+		shouldBeEqualToString('sessionStorage[storageKey]', 'Made it');
+
 		if (window.testRunner)
 			testRunner.notifyDone();
 	}
 	
-	sessionStorage.finishedFirstOpen = true;
-	
-	if (window.testRunner)
-		testRunner.terminateStorageProcess();
+	sessionStorage.doneFirstLoad = true;
 
 	// Set an error handler on the database connection so once the storage process terminates we know to continue the test
 	e.target.result._onerror_ = function(e) {
 		setTimeout(continueTest, 0);
 	}
+
+	if (window.testRunner) {
+		testRunner.waitUntilDone();
+		testRunner.terminateStorageProcess();
+	}
 }
 
 request._onerror_ = function(e) {
-	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];
-	if (window.testRunner)
-		testRunner.notifyDone();
+	if (versionToOpen == 1)
+		document.body.innerHTML = "Error on opening reuqest for database version 1. (FAIL: test should stop at opening version 3.)"; 
 }
 
 request._onsuccess_ = function(e) {
-	document.body.innerHTML = "Unexpected success during the first database open on document load. DB opening: " + dbname + ". Version opening: " + versionToOpen + ". SessionStorage value: " + sessionStorage[storageKey];
-	if (window.testRunner)
-		testRunner.notifyDone();
+	if (versionToOpen == 1)
+		document.body.innerHTML = "Success on opening reuqest for database version 1. (FAIL: test should stop at opening version 3.)";
 }
 
 </script>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to