Title: [234061] trunk/LayoutTests
Revision
234061
Author
[email protected]
Date
2018-07-20 12:34:09 -0700 (Fri, 20 Jul 2018)

Log Message

REGRESSION(PSON?): [ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
https://bugs.webkit.org/show_bug.cgi?id=183705

Reviewed by Youenn Fablet.

At the beginning of the tests, wait for the client count to reach the expected value instead of
expecting it to be the right value right away. Clients unregister themselves asynchronously so
it is flaky otherwise.

* http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
* http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
* http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
(async.doTestAfterMessage):

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (234060 => 234061)


--- trunk/LayoutTests/ChangeLog	2018-07-20 19:16:29 UTC (rev 234060)
+++ trunk/LayoutTests/ChangeLog	2018-07-20 19:34:09 UTC (rev 234061)
@@ -1,3 +1,19 @@
+2018-07-20  Chris Dumez  <[email protected]>
+
+        REGRESSION(PSON?): [ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky
+        https://bugs.webkit.org/show_bug.cgi?id=183705
+
+        Reviewed by Youenn Fablet.
+
+        At the beginning of the tests, wait for the client count to reach the expected value instead of
+        expecting it to be the right value right away. Clients unregister themselves asynchronously so
+        it is flaky otherwise.
+
+        * http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
+        * http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
+        * http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
+        (async.doTestAfterMessage):
+
 2018-07-20  Basuke Suzuki  <[email protected]>
 
         [Curl] Test gardening

Modified: trunk/LayoutTests/http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html (234060 => 234061)


--- trunk/LayoutTests/http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html	2018-07-20 19:16:29 UTC (rev 234060)
+++ trunk/LayoutTests/http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html	2018-07-20 19:34:09 UTC (rev 234061)
@@ -11,11 +11,17 @@
   testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
 }
 
+let tries = 0;
+
 navigator.serviceWorker.addEventListener("message", function(event) {
   if (step == "BothClientsInitiallyActive") {
     if (event.data != 2) {
-      log("FAIL: Wrong initial number of clients: " + event.data);
-      finishSWTest();
+      if (++tries > 20) {
+          log("FAIL: Wrong initial number of clients: " + event.data);
+          finishSWTest();
+          return;
+      }
+      worker.postMessage("getClientCount");
       return;
     }
     log("PASS: service worker has initially 2 clients");

Modified: trunk/LayoutTests/http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html (234060 => 234061)


--- trunk/LayoutTests/http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html	2018-07-20 19:16:29 UTC (rev 234060)
+++ trunk/LayoutTests/http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html	2018-07-20 19:34:09 UTC (rev 234061)
@@ -11,11 +11,17 @@
   testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
 }
 
+let tries = 0;
+
 navigator.serviceWorker.addEventListener("message", function(event) {
   if (step == "BothClientsInitiallyActive") {
     if (event.data != 2) {
-      log("FAIL: Wrong initial number of clients: " + event.data);
-      finishSWTest();
+      if (++tries > 20) {
+          log("FAIL: Wrong initial number of clients: " + event.data);
+          finishSWTest();
+          return;
+      }
+      worker.postMessage("getClientCount");
       return;
     }
     log("PASS: service worker has initially 2 clients");

Modified: trunk/LayoutTests/http/tests/workers/service/serviceworkerclients-matchAll-worker.js (234060 => 234061)


--- trunk/LayoutTests/http/tests/workers/service/serviceworkerclients-matchAll-worker.js	2018-07-20 19:16:29 UTC (rev 234060)
+++ trunk/LayoutTests/http/tests/workers/service/serviceworkerclients-matchAll-worker.js	2018-07-20 19:34:09 UTC (rev 234061)
@@ -1,10 +1,12 @@
-var matchAllPromise1 = self.clients.matchAll().then((clients) => {
-    return clients.length === 0 ? "PASS" : "FAIL: expected no matched client, got " + clients.length;
-}, (e) => {
-    return "FAIL: matchAll 1 rejected with " + e;
-});
+function matchAllPromise1()
+{
+    return self.clients.matchAll().then((clients) => {
+        return clients.length === 0 ? "PASS" : "FAIL: expected no matched client, got " + clients.length;
+    }, (e) => {
+        return "FAIL: matchAll 1 rejected with " + e;
+    });
+}
 
-
 var matchedClients;
 matchAllPromise2 = self.clients.matchAll({ includeUncontrolled : true }).then((c) => {
     matchedClients = c;
@@ -21,7 +23,13 @@
             return;
         }
 
-        var result = await matchAllPromise1;
+        let tries = 0;
+        do {
+            if (tries)
+                await waitFor(50);
+            result = await matchAllPromise1();
+        } while (result !== "PASS" && ++tries <= 20);
+
         if (result !== "PASS") {
             event.source.postMessage(result);
             return;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to