Title: [238907] trunk/LayoutTests
Revision
238907
Author
you...@apple.com
Date
2018-12-05 13:15:36 -0800 (Wed, 05 Dec 2018)

Log Message

[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189727
<rdar://problem/44584993>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Make the test more deterministic and output more test to ease debugging.

* web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html:
* web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html:

LayoutTests:

* TestExpectations:
* platform/ios/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (238906 => 238907)


--- trunk/LayoutTests/ChangeLog	2018-12-05 21:02:46 UTC (rev 238906)
+++ trunk/LayoutTests/ChangeLog	2018-12-05 21:15:36 UTC (rev 238907)
@@ -1,3 +1,14 @@
+2018-12-05  Youenn Fablet  <you...@apple.com>
+
+        [iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
+        https://bugs.webkit.org/show_bug.cgi?id=189727
+        <rdar://problem/44584993>
+
+        Reviewed by Chris Dumez.
+
+        * TestExpectations:
+        * platform/ios/TestExpectations:
+
 2018-12-05  Commit Queue  <commit-qu...@webkit.org>
 
         Unreviewed, rolling out r238844, r238846, and r238874.

Modified: trunk/LayoutTests/TestExpectations (238906 => 238907)


--- trunk/LayoutTests/TestExpectations	2018-12-05 21:02:46 UTC (rev 238906)
+++ trunk/LayoutTests/TestExpectations	2018-12-05 21:15:36 UTC (rev 238907)
@@ -263,7 +263,6 @@
 imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode-worker.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/fetch/api/redirect/redirect-to-dataurl.html [ DumpJSConsoleLogInStdErr ]
 
-webkit.org/b/181901 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-response-taint.https.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html [ DumpJSConsoleLogInStdErr ]
 imported/w3c/web-platform-tests/service-workers/service-worker/registration-security-error.https.html [ DumpJSConsoleLogInStdErr ]

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (238906 => 238907)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2018-12-05 21:02:46 UTC (rev 238906)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2018-12-05 21:15:36 UTC (rev 238907)
@@ -1,3 +1,17 @@
+2018-12-05  Youenn Fablet  <you...@apple.com>
+
+        [iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
+        https://bugs.webkit.org/show_bug.cgi?id=189727
+        <rdar://problem/44584993>
+
+        Reviewed by Chris Dumez.
+
+        Make the test more deterministic and output more test to ease debugging.
+
+        * web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
+        * web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html:
+        * web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html:
+
 2018-12-05  Frederic Wang  <fw...@igalia.com>
 
         Import css overscroll behavior WPT test

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt (238906 => 238907)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt	2018-12-05 21:02:46 UTC (rev 238906)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt	2018-12-05 21:15:36 UTC (rev 238907)
@@ -1,3 +1,87 @@
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: undefined
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?reject.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: undefined
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?reject.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: undefined
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?reject.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: undefined
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?reject.
+CONSOLE MESSAGE: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?throw due to access control checks.
+CONSOLE MESSAGE: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?throw due to access control checks.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: Returned response is null.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: Returned response is null.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: Returned response is null.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: Returned response is null.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null.
+CONSOLE MESSAGE: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ignore due to access control checks.
+CONSOLE MESSAGE: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ignore due to access control checks.
+CONSOLE MESSAGE: Credentials flag is true, but Access-Control-Allow-Credentials is not "true".
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ACAOrigin=https://localhost:9443&ignore due to access control checks.
+CONSOLE MESSAGE: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ignore due to access control checks.
+CONSOLE MESSAGE: Origin https://localhost:9443 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ignore due to access control checks.
+CONSOLE MESSAGE: Credentials flag is true, but Access-Control-Allow-Credentials is not "true".
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ACAOrigin=https://localhost:9443&ignore due to access control checks.
+CONSOLE MESSAGE: Response served by service worker is opaque
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py due to access control checks.
+CONSOLE MESSAGE: Response served by service worker is opaque
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py due to access control checks.
+CONSOLE MESSAGE: Response served by service worker is opaque
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py due to access control checks.
+CONSOLE MESSAGE: Response served by service worker is opaque
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py due to access control checks.
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Credentials flag is true, but Access-Control-Allow-Credentials is not "true".
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url=""
+CONSOLE MESSAGE: FetchEvent.respondWith received an error: TypeError: Credentials flag is true, but Access-Control-Allow-Credentials is not "true".
+CONSOLE MESSAGE: XMLHttpRequest cannot load https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url=""
 
 PASS Verify CORS XHR of fetch() in a Service Worker 
+PASS test 1: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?reject with credentials false must be FAIL 
+PASS test 2: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?reject with credentials true must be FAIL 
+PASS test 3: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?reject with credentials false must be FAIL 
+PASS test 4: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?reject with credentials true must be FAIL 
+PASS test 5: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?throw with credentials false must be SUCCESS 
+PASS test 6: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?throw with credentials true must be SUCCESS 
+PASS test 7: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?throw with credentials false must be FAIL 
+PASS test 8: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?throw with credentials true must be FAIL 
+PASS test 9: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null with credentials false must be FAIL 
+PASS test 10: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null with credentials true must be FAIL 
+PASS test 11: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null with credentials false must be FAIL 
+PASS test 12: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?resolve-null with credentials true must be FAIL 
+PASS test 13: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?ignore with credentials false must be SUCCESS 
+PASS test 14: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?ignore with credentials true must be SUCCESS 
+PASS test 15: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ignore with credentials false must be FAIL 
+PASS test 16: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ignore with credentials true must be FAIL 
+PASS test 17: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ACAOrigin=https://localhost:9443&ignore with credentials false must be SUCCESS 
+PASS test 18: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ACAOrigin=https://localhost:9443&ignore with credentials true must be FAIL 
+PASS test 19: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?ACAOrigin=https://localhost:9443&ACACredentials=true&ignore with credentials true must be SUCCESS 
+PASS test 20: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ignore with credentials false must be SUCCESS 
+PASS test 21: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ignore with credentials true must be SUCCESS 
+PASS test 22: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ignore with credentials false must be FAIL 
+PASS test 23: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ignore with credentials true must be FAIL 
+PASS test 24: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ACAOrigin=https://localhost:9443&ignore with credentials false must be STATUS401 
+PASS test 25: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ACAOrigin=https://localhost:9443&ignore with credentials true must be FAIL 
+PASS test 26: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?Auth&ACAOrigin=https://localhost:9443&ACACredentials=true&ignore with credentials true must be SUCCESS 
+PASS test 27: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=same-origin&url="" with credentials false must be SUCCESS 
+PASS test 28: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=same-origin&url="" with credentials false must be SUCCESS 
+PASS test 29: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=same-origin&url="" with credentials false must be SUCCESS 
+PASS test 30: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=same-origin&url="" with credentials false must be SUCCESS 
+PASS test 31: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=no-cors&url="" with credentials false must be FAIL 
+PASS test 32: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=no-cors&url="" with credentials false must be FAIL 
+PASS test 33: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=no-cors&url="" with credentials false must be FAIL 
+PASS test 34: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=no-cors&url="" with credentials false must be FAIL 
+PASS test 35: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url="" with credentials false must be SUCCESS 
+PASS test 36: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url="" with credentials true must be FAIL 
+PASS test 37: https://localhost:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url="" with credentials true must be SUCCESS 
+PASS test 38: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url="" with credentials false must be SUCCESS 
+PASS test 39: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url="" with credentials true must be FAIL 
+PASS test 40: https://127.0.0.1:9443/service-workers/service-worker/resources/fetch-access-control.py?mode=cors&url="" with credentials true must be SUCCESS 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html (238906 => 238907)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html	2018-12-05 21:02:46 UTC (rev 238906)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html	2018-12-05 21:15:36 UTC (rev 238907)
@@ -30,14 +30,19 @@
 
           return new Promise(function(resolve, reject) {
               var channel = new MessageChannel();
-              channel.port1._onmessage_ = resolve;
+              channel.port1._onmessage_ = (event) => {
+                  if (event.data ="" 'done') {
+                    resolve();
+                    return;
+                  }
+                  test(() => {
+                    assert_true(event.data.result);
+                  }, event.data.testName);
+              };
               frame.contentWindow.postMessage({},
                                               host_info['HTTPS_ORIGIN'],
                                               [channel.port2]);
             });
-        })
-      .then(function(e) {
-          assert_equals(e.data.results, 'finish');
         });
   }, 'Verify CORS XHR of fetch() in a Service Worker');
 </script>

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html (238906 => 238907)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html	2018-12-05 21:02:46 UTC (rev 238906)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html	2018-12-05 21:15:36 UTC (rev 238907)
@@ -26,38 +26,10 @@
     });
 }
 
-function create_test_promise(url, with_credentials, expected_result) {
-  return new Promise(function(resolve, reject) {
-      create_test_case_promise(url, with_credentials)
-        .then(function(result) {
-          if (result == expected_result) {
-            resolve();
-          } else {
-            reject('Result of url:' + url + ' ' +
-                   ' with_credentials: ' + with_credentials + ' must be ' +
-                   expected_result + ' but ' + result);
-          }
-        })
-    });
-}
-
-function create_serial_promise(test_cases) {
-  var promise = Promise.resolve();
-  test_cases.forEach(function(test_case) {
-      promise = promise.then(function() {
-          return create_test_promise(test_case[0], test_case[1], test_case[2]);
-        });
-    });
-    return promise;
-}
-
-window.addEventListener('message', function(evt) {
+window.addEventListener('message', async (evt) => {
     var port = evt.ports[0];
     var url = "" + path;
     var remote_url = host_info['HTTPS_REMOTE_ORIGIN'] + path;
-    // If the 4th value of the item of TEST_CASES is true, the test case outputs
-    // warning messages. So such tests must be executed in serial to match the
-    // expected output text.
     var TEST_CASES = [
       // Reject tests
       [url + '?reject', false, FAIL],
@@ -95,8 +67,8 @@
       // Credential test (fallback)
       [url + '?Auth&ignore', false, SUCCESS],
       [url + '?Auth&ignore', true, SUCCESS],
-      [remote_url + '?Auth&ignore', false, FAIL, true],  // Executed in serial.
-      [remote_url + '?Auth&ignore', true, FAIL, true],  // Executed in serial.
+      [remote_url + '?Auth&ignore', false, FAIL],
+      [remote_url + '?Auth&ignore', true, FAIL],
       [
         remote_url + '?Auth&ACAOrigin=' + host_info['HTTPS_ORIGIN'] + '&ignore',
         false, 'STATUS401'
@@ -186,24 +158,13 @@
         true, SUCCESS
       ]
     ];
-    var promises = [];
-    var serial_tests = [];
-    for (var i = 0; i < TEST_CASES.length ; ++i) {
-      if (!TEST_CASES[i][3]) {
-        promises.push(create_test_promise(TEST_CASES[i][0],
-                                          TEST_CASES[i][1],
-                                          TEST_CASES[i][2]));
-      } else {
-        serial_tests.push(TEST_CASES[i]);
-      }
+
+    let counter = 0;
+    for (let test of TEST_CASES) {
+      let result = await create_test_case_promise(test[0], test[1]);
+      let testName = 'test ' + (++counter) + ': ' + test[0] + ' with credentials ' + test[1] + ' must be ' + test[2];
+      port.postMessage({testName: testName, result: result === test[2]});
     }
-    promises.push(create_serial_promise(serial_tests));
-    Promise.all(promises)
-      .then(function() {
-          port.postMessage({results: 'finish'});
-        })
-      .catch(function(e) {
-          port.postMessage({results: 'failure:' + e});
-        });
+    port.postMessage('done');
   }, false);
 </script>

Modified: trunk/LayoutTests/platform/ios/TestExpectations (238906 => 238907)


--- trunk/LayoutTests/platform/ios/TestExpectations	2018-12-05 21:02:46 UTC (rev 238906)
+++ trunk/LayoutTests/platform/ios/TestExpectations	2018-12-05 21:15:36 UTC (rev 238907)
@@ -3136,7 +3136,7 @@
 webkit.org/b/189726 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html [ Pass Failure ]
 webkit.org/b/189726 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html [ Pass Failure ]
 
-webkit.org/b/189727 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html [ DumpJSConsoleLogInStdErr Pass Failure ]
+webkit.org/b/189727 imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html [ Pass Failure ]
 
 webkit.org/b/187557 media/media-fragments/TC0005.html [ Pass Failure ]
 webkit.org/b/187557 media/media-fragments/TC0006.html [ Pass Failure ]
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to