Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cache Storage API tests: Fix WPT test bugs, remove redundant local copies #5413

Merged
merged 2 commits into from
Apr 10, 2017

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

@chromium-wpt-export-bot chromium-wpt-export-bot commented Apr 6, 2017

  • Use promise_rejects consistently and fix parameters.
  • Don't use .php in upstreamed tests.
  • Add additional test cases from blink's copies.
  • Tightened up assertions about result array ordering.
  • Remove blink's redundant copies of tests.

I left the credentials tests alone since Blink is mid-deprecation.

BUG=655479
R=[email protected]

Review-Url: https://codereview.chromium.org/2790143003
Cr-Commit-Position: refs/heads/master@{#462593}


This change is Reviewable

…pies

* Use promise_rejects consistently and fix parameters.
* Don't use .php in upstreamed tests.
* Add additional test cases from blink's copies.
* Tightened up assertions about result array ordering.
* Remove blink's redundant copies of tests.

I left the credentials tests alone since Blink is mid-deprecation.

BUG=655479
[email protected]

Review-Url: https://codereview.chromium.org/2790143003
Cr-Commit-Position: refs/heads/master@{#462593}
@wpt-pr-bot
Copy link
Collaborator

Notifying @inexorabletash and @wanderview. (Learn how reviewing works.)

@foolip
Copy link
Member

foolip commented Apr 7, 2017

Looks like we have instability on Firefox, but it's not being reported back as comments. @bobholt, any idea why?

@bobholt
Copy link
Contributor

bobholt commented Apr 7, 2017

@foolip: Since there are no comments on this issue at all, it could be one of the following:

  • Travis didn't fire the webhook
  • w3c-test.org was briefly down or inaccessible
  • there was an error in the script
  • the GitHub API was down

It looks like all but one PR since this one have commented to GitHub successfully. The other PR that did not was also a chromium-export PR. This is probably a coincidence.

If you'd like to know more, we would have to ask @sideshowbarker to check the logs on w3c-test.org.

@foolip
Copy link
Member

foolip commented Apr 7, 2017

@sideshowbarker, are you able to tell what happened?

@sideshowbarker
Copy link
Member

At this point I’m not able to tell what happened. I’ll need to look further

@inexorabletash
Copy link
Member

FYI, one of the tests has assertions about ordering that don't hold in FF, leading to flaky failures. (Spec may require work here.) @wanderview and I have discussed an approach to make the test setup more precise which should resolve this; I'll tackle this once my dev machine is back online.

That'd end up being a tweak to the test on the Blink side; I'm not sure what happens with this PR, though.

@inexorabletash
Copy link
Member

https://codereview.chromium.org/2806793002/ for a fix (hopefully) on the Blink side. If/when that lands I'm not sure what our upstreaming infrastructure will do with this PR.

@jeffcarp
Copy link
Contributor

jeffcarp commented Apr 7, 2017

@inexorabletash the exporter only works at the commit level of granularity, but since https://crrev.com/2806793002 won't apply cleanly to WPT@master, I don't think the exporter will be able to make a PR. Once https://crrev.com/2806793002 lands I can apply it on top of this PR if that works for you.

@inexorabletash
Copy link
Member

@jeffcarp - sounds perfect, thanks!

Chrome and Firefox differ in the order in which cache keys() are
returned. Chrome orders by according to when the put()s were issued.
Firefox orders by when the body is complete. The test helper
prepopulated_cache_test did not guarantee that these matched, leading
to the tests being flaky in Firefox. This change tweaks the helper so
that the put()s are processed serially so that the order is
deterministic for both.

Spec issue: w3c/ServiceWorker#823
BUG=655479

Review-Url: https://codereview.chromium.org/2806793002
Cr-Commit-Position: refs/heads/master@{#463195}
@ghost
Copy link

ghost commented Apr 10, 2017

These tests are now available on w3c-test.org

@ghost
Copy link

ghost commented Apr 10, 2017

View the complete job log.

Firefox (nightly channel)

Testing web-platform-tests at revision 020907b
Using browser at version BuildID 20170409194145; SourceStamp 45692c884fdd5136a64fb2f8a61a0c8183b69331
Starting 10 test iterations
All results were stable

All results

25 tests ran
/service-workers/cache-storage/serviceworker/cache-add.https.html
Subtest Results Messages
OK
Cache.add and Cache.addAll PASS
Cache.add called with no arguments PASS {}
Cache.add called with relative URL specified as a string PASS {}
Cache.add called with non-HTTP/HTTPS URL PASS {}
Cache.add called with Request object PASS {}
Cache.add called with POST request PASS {}
Cache.add called twice with the same Request object PASS {}
Cache.add with request with null body (not consumed) FAIL assert_false: expected false got true
Cache.add with 206 response PASS {}
Cache.addAll with 206 response PASS {}
Cache.add with request that results in a status of 404 PASS {}
Cache.add with request that results in a status of 500 PASS {}
Cache.addAll with no arguments PASS {}
Cache.addAll with a mix of valid and undefined arguments PASS {}
Cache.addAll with an empty array PASS {}
Cache.addAll with string URL arguments PASS {}
Cache.addAll with Request arguments PASS {}
Cache.addAll with a mix of succeeding and failing requests PASS {}
Cache.addAll called with the same Request object specified twice PASS {}
/service-workers/cache-storage/serviceworker/cache-delete.https.html
Subtest Results Messages
OK
Cache.delete PASS
Cache.delete with no arguments PASS {}
Cache.delete called with a string URL PASS {}
Cache.delete called with a Request object PASS {}
Cache.delete called with a HEAD request PASS {}
Cache.delete supports ignoreVary PASS {}
Cache.delete with a non-existent entry PASS {}
Cache.delete with ignoreSearch option (request with search parameters) PASS {}
Cache.delete with ignoreSearch option (when it is specified as false) PASS {}
/service-workers/cache-storage/serviceworker/cache-keys.https.html
Subtest Results Messages
OK
Cache.keys PASS
Cache.keys() called on an empty cache PASS {}
Cache.keys with no matching entries PASS {}
Cache.keys with URL PASS {}
Cache.keys with Request PASS {}
Cache.keys with new Request PASS {}
Cache.keys with ignoreSearch option (request with no search parameters) PASS {}
Cache.keys with ignoreSearch option (request with search parameters) PASS {}
Cache.keys supports ignoreMethod PASS {}
Cache.keys supports ignoreVary PASS {}
Cache.keys with URL containing fragment PASS {}
Cache.keys with string fragment "http" as query PASS {}
Cache.keys without parameters PASS {}
Cache.keys with a HEAD Request PASS {}
/service-workers/cache-storage/serviceworker/cache-match.https.html
Subtest Results Messages
OK
Cache.match PASS
Cache.match with no matching entries PASS {}
Cache.match with URL PASS {}
Cache.match with Request PASS {}
Cache.match with multiple cache hits PASS {}
Cache.match with new Request PASS {}
Cache.match with HEAD PASS {}
Cache.match with ignoreSearch option (request with no search parameters) PASS {}
Cache.match with ignoreSearch option (request with search parameter) PASS {}
Cache.match supports ignoreMethod PASS {}
Cache.match supports ignoreVary PASS {}
Cache.match with URL containing fragment PASS {}
Cache.match with string fragment "http" as query PASS {}
Cache.match with responses containing "Vary" header PASS {}
Cache.match with Request and Response objects with different URLs PASS {}
Cache.match invoked multiple times for the same Request/Response PASS {}
Cache.match blob should be sliceable PASS {}
Cache.match with POST Request PASS {}
Cache.match with a non-2xx Response PASS {}
Cache.match with a network error Response PASS {}
Cache produces large Responses that can be cloned and read correctly. PASS {}
/service-workers/cache-storage/serviceworker/cache-matchAll.https.html
Subtest Results Messages
OK
Cache.matchAll PASS
Cache.matchAll with no matching entries PASS {}
Cache.matchAll with URL PASS {}
Cache.matchAll with Request PASS {}
Cache.matchAll with new Request PASS {}
Cache.matchAll with HEAD PASS {}
Cache.matchAll with ignoreSearch option (request with no search parameters) PASS {}
Cache.matchAll with ignoreSearch option (request with search parameters) PASS {}
Cache.matchAll supports ignoreMethod PASS {}
Cache.matchAll supports ignoreVary PASS {}
Cache.matchAll with URL containing fragment PASS {}
Cache.matchAll with string fragment "http" as query PASS {}
Cache.matchAll without parameters PASS {}
Cache.matchAll with responses containing "Vary" header PASS {}
Cache.matchAll with multiple vary pairs PASS {}
/service-workers/cache-storage/serviceworker/cache-put.https.html
Subtest Results Messages
OK
Cache.put PASS
Cache.put called with simple Request and Response PASS {}
Cache.put called with Request and Response from fetch() PASS {}
Cache.put with Request without a body PASS {}
Cache.put with Response without a body PASS {}
Cache.put with a Response containing an empty URL PASS {}
Cache.put with an empty response body PASS {}
Cache.put with synthetic 206 response PASS {}
Cache.put with HTTP 206 response PASS {}
Cache.put with HTTP 500 response PASS {}
Cache.put called twice with matching Requests and different Responses PASS {}
Cache.put called twice with request URLs that differ only by a fragment PASS {}
Cache.put with a string request PASS {}
Cache.put with an invalid response PASS {}
Cache.put with a non-HTTP/HTTPS request PASS {}
Cache.put with a relative URL PASS {}
Cache.put with a non-GET request PASS {}
Cache.put with a null response PASS {}
Cache.put with a POST request PASS {}
Cache.put with a used response body PASS {}
getReader() after Cache.put PASS {}
Cache.put with a VARY:* Response PASS {}
Cache.put with an embedded VARY:* Response PASS {}
Cache.put should store Response.redirect() correctly PASS {}
/service-workers/cache-storage/serviceworker/cache-storage-match.https.html
Subtest Results Messages
OK
CacheStorage.match PASS
CacheStorageMatch with no cache name provided PASS {}
CacheStorageMatch from one of many caches PASS {}
CacheStorageMatch from one of many caches by name PASS {}
CacheStorageMatch a string request PASS {}
CacheStorageMatch a HEAD request PASS {}
CacheStorageMatch with no cached entry PASS {}
CacheStorageMatch with no caches available but name provided PASS {}
CacheStorageMatch with empty cache name provided FAIL assert_equals: The response should not be found. expected (undefined) undefined but got (object) object "[object Response]"
CacheStorageMatch supports ignoreSearch PASS {}
Cache.match supports ignoreMethod PASS {}
CacheStorageMatch supports ignoreVary PASS {}
/service-workers/cache-storage/serviceworker/cache-storage.https.html
Subtest Results Messages
OK
CacheStorage PASS
CacheStorage.open PASS {}
CacheStorage.delete dooms, but does not delete immediately PASS {}
CacheStorage.open with an empty name PASS {}
CacheStorage.open with no arguments PASS {}
CacheStorage.has with existing cache PASS {}
CacheStorage.has with nonexistent cache PASS {}
CacheStorage.open with existing cache PASS {}
CacheStorage.delete with existing cache PASS {}
CacheStorage.delete with nonexistent cache PASS {}
CacheStorage names are DOMStrings not USVStrings PASS {}
/service-workers/cache-storage/window/cache-add.https.html
Subtest Results Messages
OK
Cache.add called with no arguments PASS
Cache.add called with relative URL specified as a string PASS
Cache.add called with non-HTTP/HTTPS URL PASS
Cache.add called with Request object PASS
Cache.add called with POST request PASS
Cache.add called twice with the same Request object PASS
Cache.add with request with null body (not consumed) FAIL assert_false: expected false got true
Cache.add with 206 response PASS
Cache.addAll with 206 response PASS
Cache.add with request that results in a status of 404 PASS
Cache.add with request that results in a status of 500 PASS
Cache.addAll with no arguments PASS
Cache.addAll with a mix of valid and undefined arguments PASS
Cache.addAll with an empty array PASS
Cache.addAll with string URL arguments PASS
Cache.addAll with Request arguments PASS
Cache.addAll with a mix of succeeding and failing requests PASS
Cache.addAll called with the same Request object specified twice PASS
/service-workers/cache-storage/window/cache-delete.https.html
Subtest Results Messages
OK
Cache.delete with no arguments PASS
Cache.delete called with a string URL PASS
Cache.delete called with a Request object PASS
Cache.delete called with a HEAD request PASS
Cache.delete supports ignoreVary PASS
Cache.delete with a non-existent entry PASS
Cache.delete with ignoreSearch option (request with search parameters) PASS
Cache.delete with ignoreSearch option (when it is specified as false) PASS
/service-workers/cache-storage/window/cache-keys.https.html
Subtest Results Messages
OK
Cache.keys() called on an empty cache PASS
Cache.keys with no matching entries PASS
Cache.keys with URL PASS
Cache.keys with Request PASS
Cache.keys with new Request PASS
Cache.keys with ignoreSearch option (request with no search parameters) PASS
Cache.keys with ignoreSearch option (request with search parameters) PASS
Cache.keys supports ignoreMethod PASS
Cache.keys supports ignoreVary PASS
Cache.keys with URL containing fragment PASS
Cache.keys with string fragment "http" as query PASS
Cache.keys without parameters PASS
Cache.keys with a HEAD Request PASS
/service-workers/cache-storage/window/cache-match.https.html
Subtest Results Messages
OK
Cache.match with no matching entries PASS
Cache.match with URL PASS
Cache.match with Request PASS
Cache.match with multiple cache hits PASS
Cache.match with new Request PASS
Cache.match with HEAD PASS
Cache.match with ignoreSearch option (request with no search parameters) PASS
Cache.match with ignoreSearch option (request with search parameter) PASS
Cache.match supports ignoreMethod PASS
Cache.match supports ignoreVary PASS
Cache.match with URL containing fragment PASS
Cache.match with string fragment "http" as query PASS
Cache.match with responses containing "Vary" header PASS
Cache.match with Request and Response objects with different URLs PASS
Cache.match invoked multiple times for the same Request/Response PASS
Cache.match blob should be sliceable PASS
Cache.match with POST Request PASS
Cache.match with a non-2xx Response PASS
Cache.match with a network error Response PASS
Cache produces large Responses that can be cloned and read correctly. PASS
/service-workers/cache-storage/window/cache-matchAll.https.html
Subtest Results Messages
OK
Cache.matchAll with no matching entries PASS
Cache.matchAll with URL PASS
Cache.matchAll with Request PASS
Cache.matchAll with new Request PASS
Cache.matchAll with HEAD PASS
Cache.matchAll with ignoreSearch option (request with no search parameters) PASS
Cache.matchAll with ignoreSearch option (request with search parameters) PASS
Cache.matchAll supports ignoreMethod PASS
Cache.matchAll supports ignoreVary PASS
Cache.matchAll with URL containing fragment PASS
Cache.matchAll with string fragment "http" as query PASS
Cache.matchAll without parameters PASS
Cache.matchAll with responses containing "Vary" header PASS
Cache.matchAll with multiple vary pairs PASS
/service-workers/cache-storage/window/cache-put.https.html
Subtest Results Messages
OK
Cache.put called with simple Request and Response PASS
Cache.put called with Request and Response from fetch() PASS
Cache.put with Request without a body PASS
Cache.put with Response without a body PASS
Cache.put with a Response containing an empty URL PASS
Cache.put with an empty response body PASS
Cache.put with synthetic 206 response PASS
Cache.put with HTTP 206 response PASS
Cache.put with HTTP 500 response PASS
Cache.put called twice with matching Requests and different Responses PASS
Cache.put called twice with request URLs that differ only by a fragment PASS
Cache.put with a string request PASS
Cache.put with an invalid response PASS
Cache.put with a non-HTTP/HTTPS request PASS
Cache.put with a relative URL PASS
Cache.put with a non-GET request PASS
Cache.put with a null response PASS
Cache.put with a POST request PASS
Cache.put with a used response body PASS
getReader() after Cache.put PASS
Cache.put with a VARY:* Response PASS
Cache.put with an embedded VARY:* Response PASS
Cache.put should store Response.redirect() correctly PASS
/service-workers/cache-storage/window/cache-storage-keys.https.html
Subtest Results Messages
OK
CacheStorage keys PASS
/service-workers/cache-storage/window/cache-storage-match.https.html
Subtest Results Messages
OK
CacheStorageMatch with no cache name provided PASS
CacheStorageMatch from one of many caches PASS
CacheStorageMatch from one of many caches by name PASS
CacheStorageMatch a string request PASS
CacheStorageMatch a HEAD request PASS
CacheStorageMatch with no cached entry PASS
CacheStorageMatch with no caches available but name provided PASS
CacheStorageMatch with empty cache name provided FAIL assert_equals: The response should not be found. expected (undefined) undefined but got (object) object "[object Response]"
CacheStorageMatch supports ignoreSearch PASS
Cache.match supports ignoreMethod PASS
CacheStorageMatch supports ignoreVary PASS
/service-workers/cache-storage/window/cache-storage.https.html
Subtest Results Messages
OK
CacheStorage.open PASS
CacheStorage.delete dooms, but does not delete immediately PASS
CacheStorage.open with an empty name PASS
CacheStorage.open with no arguments PASS
CacheStorage.has with existing cache PASS
CacheStorage.has with nonexistent cache PASS
CacheStorage.open with existing cache PASS
CacheStorage.delete with existing cache PASS
CacheStorage.delete with nonexistent cache PASS
CacheStorage names are DOMStrings not USVStrings PASS
/service-workers/cache-storage/worker/cache-add.https.html
Subtest Results Messages
OK
Cache.add called with no arguments PASS {}
Cache.add called with relative URL specified as a string PASS {}
Cache.add called with non-HTTP/HTTPS URL PASS {}
Cache.add called with Request object PASS {}
Cache.add called with POST request PASS {}
Cache.add called twice with the same Request object PASS {}
Cache.add with request with null body (not consumed) FAIL assert_false: expected false got true
Cache.add with 206 response PASS {}
Cache.addAll with 206 response PASS {}
Cache.add with request that results in a status of 404 PASS {}
Cache.add with request that results in a status of 500 PASS {}
Cache.addAll with no arguments PASS {}
Cache.addAll with a mix of valid and undefined arguments PASS {}
Cache.addAll with an empty array PASS {}
Cache.addAll with string URL arguments PASS {}
Cache.addAll with Request arguments PASS {}
Cache.addAll with a mix of succeeding and failing requests PASS {}
Cache.addAll called with the same Request object specified twice PASS {}
/service-workers/cache-storage/worker/cache-delete.https.html
Subtest Results Messages
OK
Cache.delete with no arguments PASS {}
Cache.delete called with a string URL PASS {}
Cache.delete called with a Request object PASS {}
Cache.delete called with a HEAD request PASS {}
Cache.delete supports ignoreVary PASS {}
Cache.delete with a non-existent entry PASS {}
Cache.delete with ignoreSearch option (request with search parameters) PASS {}
Cache.delete with ignoreSearch option (when it is specified as false) PASS {}
/service-workers/cache-storage/worker/cache-keys.https.html
Subtest Results Messages
OK
Cache.keys() called on an empty cache PASS {}
Cache.keys with no matching entries PASS {}
Cache.keys with URL PASS {}
Cache.keys with Request PASS {}
Cache.keys with new Request PASS {}
Cache.keys with ignoreSearch option (request with no search parameters) PASS {}
Cache.keys with ignoreSearch option (request with search parameters) PASS {}
Cache.keys supports ignoreMethod PASS {}
Cache.keys supports ignoreVary PASS {}
Cache.keys with URL containing fragment PASS {}
Cache.keys with string fragment "http" as query PASS {}
Cache.keys without parameters PASS {}
Cache.keys with a HEAD Request PASS {}
/service-workers/cache-storage/worker/cache-match.https.html
Subtest Results Messages
OK
Cache.match with no matching entries PASS {}
Cache.match with URL PASS {}
Cache.match with Request PASS {}
Cache.match with multiple cache hits PASS {}
Cache.match with new Request PASS {}
Cache.match with HEAD PASS {}
Cache.match with ignoreSearch option (request with no search parameters) PASS {}
Cache.match with ignoreSearch option (request with search parameter) PASS {}
Cache.match supports ignoreMethod PASS {}
Cache.match supports ignoreVary PASS {}
Cache.match with URL containing fragment PASS {}
Cache.match with string fragment "http" as query PASS {}
Cache.match with responses containing "Vary" header PASS {}
Cache.match with Request and Response objects with different URLs PASS {}
Cache.match invoked multiple times for the same Request/Response PASS {}
Cache.match blob should be sliceable PASS {}
Cache.match with POST Request PASS {}
Cache.match with a non-2xx Response PASS {}
Cache.match with a network error Response PASS {}
Cache produces large Responses that can be cloned and read correctly. PASS {}
/service-workers/cache-storage/worker/cache-matchAll.https.html
Subtest Results Messages
OK
Cache.matchAll with no matching entries PASS {}
Cache.matchAll with URL PASS {}
Cache.matchAll with Request PASS {}
Cache.matchAll with new Request PASS {}
Cache.matchAll with HEAD PASS {}
Cache.matchAll with ignoreSearch option (request with no search parameters) PASS {}
Cache.matchAll with ignoreSearch option (request with search parameters) PASS {}
Cache.matchAll supports ignoreMethod PASS {}
Cache.matchAll supports ignoreVary PASS {}
Cache.matchAll with URL containing fragment PASS {}
Cache.matchAll with string fragment "http" as query PASS {}
Cache.matchAll without parameters PASS {}
Cache.matchAll with responses containing "Vary" header PASS {}
Cache.matchAll with multiple vary pairs PASS {}
/service-workers/cache-storage/worker/cache-put.https.html
Subtest Results Messages
OK
Cache.put called with simple Request and Response PASS {}
Cache.put called with Request and Response from fetch() PASS {}
Cache.put with Request without a body PASS {}
Cache.put with Response without a body PASS {}
Cache.put with a Response containing an empty URL PASS {}
Cache.put with an empty response body PASS {}
Cache.put with synthetic 206 response PASS {}
Cache.put with HTTP 206 response PASS {}
Cache.put with HTTP 500 response PASS {}
Cache.put called twice with matching Requests and different Responses PASS {}
Cache.put called twice with request URLs that differ only by a fragment PASS {}
Cache.put with a string request PASS {}
Cache.put with an invalid response PASS {}
Cache.put with a non-HTTP/HTTPS request PASS {}
Cache.put with a relative URL PASS {}
Cache.put with a non-GET request PASS {}
Cache.put with a null response PASS {}
Cache.put with a POST request PASS {}
Cache.put with a used response body PASS {}
getReader() after Cache.put PASS {}
Cache.put with a VARY:* Response PASS {}
Cache.put with an embedded VARY:* Response PASS {}
Cache.put should store Response.redirect() correctly PASS {}
/service-workers/cache-storage/worker/cache-storage-match.https.html
Subtest Results Messages
OK
CacheStorageMatch with no cache name provided PASS {}
CacheStorageMatch from one of many caches PASS {}
CacheStorageMatch from one of many caches by name PASS {}
CacheStorageMatch a string request PASS {}
CacheStorageMatch a HEAD request PASS {}
CacheStorageMatch with no cached entry PASS {}
CacheStorageMatch with no caches available but name provided PASS {}
CacheStorageMatch with empty cache name provided FAIL assert_equals: The response should not be found. expected (undefined) undefined but got (object) object "[object Response]"
CacheStorageMatch supports ignoreSearch PASS {}
Cache.match supports ignoreMethod PASS {}
CacheStorageMatch supports ignoreVary PASS {}
/service-workers/cache-storage/worker/cache-storage.https.html
Subtest Results Messages
OK
CacheStorage.open PASS {}
CacheStorage.delete dooms, but does not delete immediately PASS {}
CacheStorage.open with an empty name PASS {}
CacheStorage.open with no arguments PASS {}
CacheStorage.has with existing cache PASS {}
CacheStorage.has with nonexistent cache PASS {}
CacheStorage.open with existing cache PASS {}
CacheStorage.delete with existing cache PASS {}
CacheStorage.delete with nonexistent cache PASS {}
CacheStorage names are DOMStrings not USVStrings PASS {}

@ghost
Copy link

ghost commented Apr 10, 2017

*This report has been truncated because the total content is 66613 characters in length, which is in excess of GitHub.com's limit for comments (65536 characters).

View the complete job log.

Chrome (unstable channel)

Testing web-platform-tests at revision 020907b
Using browser at version 59.0.3063.4 dev
Starting 10 test iterations
All results were stable

All results

25 tests ran
/service-workers/cache-storage/serviceworker/cache-add.https.html
Subtest Results Messages
OK
Cache.add and Cache.addAll PASS
Cache.add called with no arguments PASS {}
Cache.add called with relative URL specified as a string PASS {}
Cache.add called with non-HTTP/HTTPS URL PASS {}
Cache.add called with Request object PASS {}
Cache.add called with POST request PASS {}
Cache.add called twice with the same Request object PASS {}
Cache.add with request with null body (not consumed) PASS {}
Cache.add with 206 response PASS {}
Cache.addAll with 206 response PASS {}
Cache.add with request that results in a status of 404 PASS {}
Cache.add with request that results in a status of 500 PASS {}
Cache.addAll with no arguments PASS {}
Cache.addAll with a mix of valid and undefined arguments PASS {}
Cache.addAll with an empty array PASS {}
Cache.addAll with string URL arguments PASS {}
Cache.addAll with Request arguments PASS {}
Cache.addAll with a mix of succeeding and failing requests PASS {}
Cache.addAll called with the same Request object specified twice FAIL assert_unreached: Should have rejected: Cache.addAll should throw InvalidStateError if the same request is added twice. Reached unreachable code
/service-workers/cache-storage/serviceworker/cache-delete.https.html
Subtest Results Messages
OK
Cache.delete PASS
Cache.delete with no arguments PASS {}
Cache.delete called with a string URL PASS {}
Cache.delete called with a Request object PASS {}
Cache.delete called with a HEAD request PASS {}
Cache.delete supports ignoreVary PASS {}
Cache.delete with a non-existent entry PASS {}
Cache.delete with ignoreSearch option (request with search parameters) PASS {}
Cache.delete with ignoreSearch option (when it is specified as false) PASS {}
/service-workers/cache-storage/serviceworker/cache-keys.https.html
Subtest Results Messages
OK
Cache.keys PASS
Cache.keys() called on an empty cache PASS {}
Cache.keys with no matching entries PASS {}
Cache.keys with URL PASS {}
Cache.keys with Request PASS {}
Cache.keys with new Request PASS {}
Cache.keys with ignoreSearch option (request with no search parameters) PASS {}
Cache.keys with ignoreSearch option (request with search parameters) PASS {}
Cache.keys supports ignoreMethod PASS {}
Cache.keys supports ignoreVary PASS {}
Cache.keys with URL containing fragment PASS {}
Cache.keys with string fragment "http" as query PASS {}
Cache.keys without parameters PASS {}
Cache.keys with a HEAD Request PASS {}
/service-workers/cache-storage/serviceworker/cache-match.https.html
Subtest Results Messages
OK
Cache.match PASS
Cache.match with no matching entries PASS {}
Cache.match with URL PASS {}
Cache.match with Request PASS {}
Cache.match with multiple cache hits PASS {}
Cache.match with new Request PASS {}
Cache.match with HEAD PASS {}
Cache.match with ignoreSearch option (request with no search parameters) PASS {}
Cache.match with ignoreSearch option (request with search parameter) PASS {}
Cache.match supports ignoreMethod PASS {}
Cache.match supports ignoreVary PASS {}
Cache.match with URL containing fragment PASS {}
Cache.match with string fragment "http" as query PASS {}
Cache.match with responses containing "Vary" header PASS {}
Cache.match with Request and Response objects with different URLs PASS {}
Cache.match invoked multiple times for the same Request/Response PASS {}
Cache.match blob should be sliceable PASS {}
Cache.match with POST Request PASS {}
Cache.match with a non-2xx Response PASS {}
Cache.match with a network error Response PASS {}
Cache produces large Responses that can be cloned and read correctly. PASS {}
/service-workers/cache-storage/serviceworker/cache-matchAll.https.html
Subtest Results Messages
OK
Cache.matchAll PASS
Cache.matchAll with no matching entries PASS {}
Cache.matchAll with URL PASS {}
Cache.matchAll with Request PASS {}
Cache.matchAll with new Request PASS {}
Cache.matchAll with HEAD PASS {}
Cache.matchAll with ignoreSearch option (request with no search parameters) PASS {}
Cache.matchAll with ignoreSearch option (request with search parameters) PASS {}
Cache.matchAll supports ignoreMethod PASS {}
Cache.matchAll supports ignoreVary PASS {}
Cache.matchAll with URL containing fragment PASS {}
Cache.matchAll with string fragment "http" as query PASS {}
Cache.matchAll without parameters PASS {}
Cache.matchAll with responses containing "Vary" header FAIL assert_equals: Cache.matchAll should match the entire header if a vary header is present in both the query and cached requests. expected 1 but got 0
Cache.matchAll with multiple vary pairs FAIL assert_equals: Cache.matchAll should support multiple vary request/response pairs. expected 3 but got 1
/service-workers/cache-storage/serviceworker/cache-put.https.html
Subtest Results Messages
OK
Cache.put PASS
Cache.put called with simple Request and Response PASS {}
Cache.put called with Request and Response from fetch() PASS {}
Cache.put with Request without a body PASS {}
Cache.put with Response without a body PASS {}
Cache.put with a Response containing an empty URL PASS {}
Cache.put with an empty response body PASS {}
Cache.put with synthetic 206 response PASS {}
Cache.put with HTTP 206 response PASS {}
Cache.put with HTTP 500 response PASS {}
Cache.put called twice with matching Requests and different Responses PASS {}
Cache.put called twice with request URLs that differ only by a fragment PASS {}
Cache.put with a string request PASS {}
Cache.put with an invalid response PASS {}
Cache.put with a non-HTTP/HTTPS request PASS {}
Cache.put with a relative URL PASS {}
Cache.put with a non-GET request PASS {}
Cache.put with a null response PASS {}
Cache.put with a POST request PASS {}
Cache.put with a used response body PASS {}
getReader() after Cache.put PASS {}
Cache.put with a VARY:* Response PASS {}
Cache.put with an embedded VARY:* Response PASS {}
Cache.put should store Response.redirect() correctly PASS {}
/service-workers/cache-storage/serviceworker/cache-storage-match.https.html
Subtest Results Messages
OK
CacheStorage.match PASS
CacheStorageMatch with no cache name provided PASS {}
CacheStorageMatch from one of many caches PASS {}
CacheStorageMatch from one of many caches by name PASS {}
CacheStorageMatch a string request PASS {}
CacheStorageMatch a HEAD request PASS {}
CacheStorageMatch with no cached entry PASS {}
CacheStorageMatch with no caches available but name provided PASS {}
CacheStorageMatch with empty cache name provided PASS {}
CacheStorageMatch supports ignoreSearch PASS {}
Cache.match supports ignoreMethod PASS {}
CacheStorageMatch supports ignoreVary PASS {}
/service-workers/cache-storage/serviceworker/cache-storage.https.html
Subtest Results Messages
OK
CacheStorage PASS
CacheStorage.open PASS {}
CacheStorage.delete dooms, but does not delete immediately PASS {}
CacheStorage.open with an empty name PASS {}
CacheStorage.open with no arguments PASS {}
CacheStorage.has with existing cache PASS {}
CacheStorage.has with nonexistent cache PASS {}
CacheStorage.open with existing cache PASS {}
CacheStorage.delete with existing cache PASS {}
CacheStorage.delete with nonexistent cache PASS {}
CacheStorage names are DOMStrings not USVStrings FAIL assert_true: keys should include cache with bad name expected true got false
/service-workers/cache-storage/window/cache-add.https.html
Subtest Results Messages
OK
Cache.add called with no arguments PASS
Cache.add called with relative URL specified as a string PASS
Cache.add called with non-HTTP/HTTPS URL PASS
Cache.add called with Request object PASS
Cache.add called with POST request PASS
Cache.add called twice with the same Request object PASS
Cache.add with request with null body (not consumed) PASS
Cache.add with 206 response PASS
Cache.addAll with 206 response PASS
Cache.add with request that results in a status of 404 PASS
Cache.add with request that results in a status of 500 PASS
Cache.addAll with no arguments PASS
Cache.addAll with a mix of valid and undefined arguments PASS
Cache.addAll with an empty array PASS
Cache.addAll with string URL arguments PASS
Cache.addAll with Request arguments PASS
Cache.addAll with a mix of succeeding and failing requests PASS
Cache.addAll called with the same Request object specified twice FAIL assert_unreached: Should have rejected: Cache.addAll should throw InvalidStateError if the same request is added twice. Reached unreachable code
/service-workers/cache-storage/window/cache-delete.https.html
Subtest Results Messages
OK
Cache.delete with no arguments PASS
Cache.delete called with a string URL PASS
Cache.delete called with a Request object PASS
Cache.delete called with a HEAD request PASS
Cache.delete supports ignoreVary PASS
Cache.delete with a non-existent entry PASS
Cache.delete with ignoreSearch option (request with search parameters) PASS
Cache.delete with ignoreSearch option (when it is specified as false) PASS
/service-workers/cache-storage/window/cache-keys.https.html
Subtest Results Messages
OK
Cache.keys() called on an empty cache PASS
Cache.keys with no matching entries PASS
Cache.keys with URL PASS
Cache.keys with Request PASS
Cache.keys with new Request PASS
Cache.keys with ignoreSearch option (request with no search parameters) PASS
Cache.keys with ignoreSearch option (request with search parameters) PASS
Cache.keys supports ignoreMethod PASS
Cache.keys supports ignoreVary PASS
Cache.keys with URL containing fragment PASS
Cache.keys with string fragment "http" as query PASS
Cache.keys without parameters PASS
Cache.keys with a HEAD Request PASS
/service-workers/cache-storage/window/cache-match.https.html
Subtest Results Messages
OK
Cache.match with no matching entries PASS
Cache.match with URL PASS
Cache.match with Request PASS
Cache.match with multiple cache hits PASS
Cache.match with new Request PASS
Cache.match with HEAD PASS
Cache.match with ignoreSearch option (request with no search parameters) PASS
Cache.match with ignoreSearch option (request with search parameter) PASS
Cache.match supports ignoreMethod PASS
Cache.match supports ignoreVary PASS
Cache.match with URL containing fragment PASS
Cache.match with string fragment "http" as query PASS
Cache.match with responses containing "Vary" header PASS
Cache.match with Request and Response objects with different URLs PASS
Cache.match invoked multiple times for the same Request/Response PASS
Cache.match blob should be sliceable PASS
Cache.match with POST Request PASS
Cache.match with a non-2xx Response PASS
Cache.match with a network error Response PASS
Cache produces large Responses that can be cloned and read correctly. PASS
/service-workers/cache-storage/window/cache-matchAll.https.html
Subtest Results Messages
OK
Cache.matchAll with no matching entries PASS
Cache.matchAll with URL PASS
Cache.matchAll with Request PASS
Cache.matchAll with new Request PASS
Cache.matchAll with HEAD PASS
Cache.matchAll with ignoreSearch option (request with no search parameters) PASS
Cache.matchAll with ignoreSearch option (request with search parameters) PASS
Cache.matchAll supports ignoreMethod PASS
Cache.matchAll supports ignoreVary PASS
Cache.matchAll with URL containing fragment PASS
Cache.matchAll with string fragment "http" as query PASS
Cache.matchAll without parameters PASS
Cache.matchAll with responses containing "Vary" header FAIL assert_equals: Cache.matchAll should match the entire header if a vary header is present in both the query and cached requests. expected 1 but got 0
Cache.matchAll with multiple vary pairs FAIL assert_equals: Cache.matchAll should support multiple vary request/response pairs. expected 3 but got 1
/service-workers/cache-storage/window/cache-put.https.html
Subtest Results Messages
OK
Cache.put called with simple Request and Response PASS
Cache.put called with Request and Response from fetch() PASS
Cache.put with Request without a body PASS
Cache.put with Response without a body PASS
Cache.put with a Response containing an empty URL PASS
Cache.put with an empty response body PASS
Cache.put with synthetic 206 response PASS
Cache.put with HTTP 206 response PASS
Cache.put with HTTP 500 response PASS
Cache.put called twice with matching Requests and different Responses PASS
Cache.put called twice with request URLs that differ only by a fragment PASS
Cache.put with a string request PASS
Cache.put with an invalid response PASS
Cache.put with a non-HTTP/HTTPS request PASS
Cache.put with a relative URL PASS
Cache.put with a non-GET request PASS
Cache.put with a null response PASS
Cache.put with a POST request PASS
Cache.put with a used response body PASS
getReader() after Cache.put PASS
Cache.put with a VARY:* Response PASS
Cache.put with an embedded VARY:* Response PASS
Cache.put should store Response.redirect() correctly PASS
/service-workers/cache-storage/window/cache-storage-keys.https.html
Subtest Results Messages
OK
CacheStorage keys PASS
/service-workers/cache-storage/window/cache-storage-match.https.html
Subtest Results Messages
OK
CacheStorageMatch with no cache name provided PASS
CacheStorageMatch from one of many caches PASS
CacheStorageMatch from one of many caches by name PASS
CacheStorageMatch a string request PASS
CacheStorageMatch a HEAD request PASS
CacheStorageMatch with no cached entry PASS
CacheStorageMatch with no caches available but name provided PASS
CacheStorageMatch with empty cache name provided PASS
CacheStorageMatch supports ignoreSearch PASS
Cache.match supports ignoreMethod PASS
CacheStorageMatch supports ignoreVary PASS
/service-workers/cache-storage/window/cache-storage.https.html
Subtest Results Messages
OK
CacheStorage.open PASS
CacheStorage.delete dooms, but does not delete immediately PASS
CacheStorage.open with an empty name PASS
CacheStorage.open with no arguments PASS
CacheStorage.has with existing cache PASS
CacheStorage.has with nonexistent cache PASS
CacheStorage.open with existing cache PASS
CacheStorage.delete with existing cache PASS
CacheStorage.delete with nonexistent cache PASS
CacheStorage names are DOMStrings not USVStrings FAIL assert_true: keys should include cache with bad name expected true got false
/service-workers/cache-storage/worker/cache-add.https.html
Subtest Results Messages
OK
Cache.add called with no arguments PASS {}
Cache.add called with relative URL specified as a string PASS {}
Cache.add called with non-HTTP/HTTPS URL PASS {}
Cache.add called with Request object PASS {}
Cache.add called with POST request PASS {}
Cache.add called twice with the same Request object PASS {}
Cache.add with request with null body (not consumed) PASS {}
Cache.add with 206 response PASS {}
Cache.addAll with 206 response PASS {}
Cache.add with request that results in a status of 404 PASS {}
Cache.add with request that results in a status of 500 PASS {}
Cache.addAll with no arguments PASS {}
Cache.addAll with a mix of valid and undefined arguments PASS {}
Cache.addAll with an empty array PASS {}
Cache.addAll with string URL arguments PASS {}
Cache.addAll with Request arguments PASS {}
Cache.addAll with a mix of succeeding and failing requests PASS {}
Cache.addAll called with the same Request object specified twice FAIL assert_unreached: Should have rejected: Cache.addAll should throw InvalidStateError if the same request is added twice. Reached unreachable code
/service-workers/cache-storage/worker/cache-delete.https.html
Subtest Results Messages
OK
Cache.delete with no arguments PASS {}
Cache.delete called with a string URL PASS {}
Cache.delete called with a Request object PASS {}
Cache.delete called with a HEAD request PASS {}
Cache.delete supports ignoreVary PASS {}
Cache.delete with a non-existent entry PASS {}
Cache.delete with ignoreSearch option (request with search parameters) PASS {}
Cache.delete with ignoreSearch option (when it is specified as false) PASS {}
/service-workers/cache-storage/worker/cache-keys.https.html
Subtest Results Messages
OK
Cache.keys() called on an empty cache PASS {}
Cache.keys with no matching entries PASS {}
Cache.keys with URL PASS {}
Cache.keys with Request PASS {}
Cache.keys with new Request PASS {}
Cache.keys with ignoreSearch option (request with no search parameters) PASS {}
Cache.keys with ignoreSearch option (request with search parameters) PASS {}
Cache.keys supports ignoreMethod PASS {}
Cache.keys supports ignoreVary PASS {}
Cache.keys with URL containing fragment PASS {}
Cache.keys with string fragment "http" as query PASS {}
Cache.keys without parameters PASS {}
Cache.keys with a HEAD Request PASS {}
/service-workers/cache-storage/worker/cache-match.https.html
Subtest Results Messages
OK
Cache.match with no matching entries PASS {}
Cache.match with URL PASS {}
Cache.match with Request PASS {}
Cache.match with multiple cache hits PASS {}
Cache.match with new Request PASS {}
Cache.match with HEAD PASS {}
Cache.match with ignoreSearch option (request with no search parameters) PASS {}
Cache.match with ignoreSearch option (request with search parameter) PASS {}
Cache.match supports ignoreMethod PASS {}
Cache.match supports ignoreVary PASS {}
Cache.match with URL containing fragment PASS {}
Cache.match with string fragment "http" as query PASS {}
Cache.match with responses containing "Vary" header PASS {}
Cache.match with Request and Response objects with different URLs PASS {}
Cache.match invoked multiple times for the same Request/Response PASS {}
Cache.match blob should be sliceable PASS {}
Cache.match with POST Request PASS {}
Cache.match with a non-2xx Response PASS {}
Cache.match with a network error Response PASS {}
Cache produces large Responses that can be cloned and read correctly. PASS {}
/service-workers/cache-storage/worker/cache-matchAll.https.html
Subtest Results Messages
OK
Cache.matchAll with no matching entries PASS {}
Cache.matchAll with URL PASS {}
Cache.matchAll with Request PASS {}
Cache.matchAll with new Request PASS {}
Cache.matchAll with HEAD PASS {}
Cache.matchAll with ignoreSearch option (request with no search parameters) PASS {}
Cache.matchAll with ignoreSearch option (request with search parameters) PASS {}
Cache.matchAll supports ignoreMethod PASS {}
Cache.matchAll supports ignoreVary PASS {}
Cache.matchAll with URL containing fragment PASS {}
Cache.matchAll with string fragment "http" as query PASS {}
Cache.matchAll without parameters PASS {}
Cache.matchAll with responses containing "Vary" header FAIL assert_equals: Cache.matchAll should match the entire header if a vary header is present in both the query and cached requests. expected 1 but got 0
Cache.matchAll with multiple vary pairs FAIL assert_equals: Cache.matchAll should support multiple vary request/response pairs. expected 3 but got 1
/service-workers/cache-storage/worker/cache-put.https.html
Subtest Results Messages
OK
Cache.put called with simple Request and Response PASS {}
Cache.put called with Request and Response from fetch() PASS {}
Cache.put with Request without a body PASS {}
Cache.put with Response without a body PASS {}
Cache.put with a Response containing an empty URL PASS {}
Cache.put with an empty response body PASS {}
Cache.put with synthetic 206 response PASS {}
Cache.put with HTTP 206 response PASS {}
Cache.put with HTTP 500 response PASS {}
Cache.put called twice with matching Requests and different Responses PASS {}
Cache.put called twice with request URLs that differ only by a fragment PASS {}
Cache.put with a string request PASS {}
Cache.put with an invalid response PASS {}
Cache.put with a non-HTTP/HTTPS request PASS {}
Cache.put with a relative URL PASS {}
Cache.put with a non-GET request PASS {}
Cache.put with a null response PASS {}
Cache.put with a POST request PASS {}
Cache.put with a used response body PASS {}
getReader() after Cache.put PASS {}
Cache.put with a VARY:* Response PASS {}
Cache.put with an embedded VARY:* Response PASS {}
Cache.put should store Response.redirect() correctly PASS {}
/service-workers/cache-storage/worker/cache-storage-match.https.html
Subtest Results Messages
OK
CacheStorageMatch with no cache name provided PASS {}
CacheStorageMatch from one of many caches PASS {}
CacheStorageMatch from one of many caches by name PASS {}
CacheStorageMatch a string request PASS {}
CacheStorageMatch a HEAD request PASS {}
CacheStorageMatch with no cached entry PASS {}
CacheStorageMatch with no caches available but name provided PASS {}
CacheStorageMatch with empty cache name provided PASS {}
CacheStorageMatch supports ignoreSearch PASS {}
Cache.match supports ignoreMethod PASS {}
CacheStorageMatch supports ignoreVary PASS {}
/service-workers/cache-storage/worker/cache-storage.https.html
Subtest Results Messages
OK
CacheStorage.open PASS {}
CacheStorage.delete dooms, but does not delete immediately PASS {}
`CacheStorage.open with an

@chromium-wpt-export-bot chromium-wpt-export-bot merged commit c041e12 into master Apr 10, 2017
@chromium-wpt-export-bot chromium-wpt-export-bot deleted the chromium-export-44c004f971 branch April 10, 2017 09:26
@foolip
Copy link
Member

foolip commented Apr 10, 2017

@jeffcarp, FYI, I was perfectly happy that the PR was merged automatically after the fix.

@foolip
Copy link
Member

foolip commented Apr 10, 2017

Context: on another PR I was a bit surprised, but agreed that it's probably a good default.

@foolip
Copy link
Member

foolip commented Apr 10, 2017

@jeffcarp, is the rebase strategy now used for merging PRs? That together with parallel exporting, made this a bit confusing. I cherry-picked the commit from #5521 onto this PR since they made sense together, but it looks like #5521 was automatically merged first because it didn't conflict. Then just the remaining commit from the PR was merged. The result is that the commits appear in wpt history in reverse order.

However, if I had succeeded in getting https://github.com/w3c/web-platform-tests/pull/5413/commits merged together at the same time, it would have left #5521 as a no-op. I actually anticipated that and was curious to see what would happen :)

@jeffcarp
Copy link
Contributor

jeffcarp commented Apr 10, 2017

@foolip thanks for testing that out in practice! landing commits out of order is the tradeoff we're making in order to be able to export asynchronously / get around stuck commits - is there something you would change? do you think we should have a way of saying on a PR "exporter, don't automatically merge this?"

The exporter specifies that it wants to use the rebase method:
https://cs.chromium.org/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/w3c/wpt_github.py?type=cs&q=rebase+wpt_github&l=119
but the feature is still in beta last time I checked, so it won't get applied. Maybe it came out of beta?

@foolip
Copy link
Member

foolip commented Apr 11, 2017

I guess it came out of beta :)

It would be good if the bot looked at the "do not merge yet" label, which I could have added to #5521 in this case. But for the ordering problem more generally, I might suggest that skipping over a commit and thus changing the order should require human intervention. However, that'd hurt the average time to export and most of the time it's fine.

Do you expect that after PRs are created for in-progress Chromium reviews and we have the Travis results before landing in Chromium, that we could go back to upstream in order only? If so, then perhaps it's not worth spending any time improving the current situation.

All in all, perhaps wait until there's a case where changing the order was a problem before acting.

@sideshowbarker
Copy link
Member

@sideshowbarker, are you able to tell what happened?

After looking through the logs I’m still not sure what all happened. For one thing, the logs are extremely verbose. Anyway as far as w3c-test.org goes, I do know that one problem that happened over the last few days is that we ran out of filesystem space for the submissions stuff.

The mount for the submissions directory has 29GB of space but we periodically fill it up to 100% and I have to go in there an manually rm directories for some older PRs until I get it back down to 50% or so. So we need to deal with that chronic problem and yesterday @gsnedders opened w3c/github_sync#20 as part of the solution.

Another chronic problem we have is that webhook requests to w3c-test.org sometimes just timeout (and then don’t get re-tried). I haven’t been able to see a pattern to what causes them to timeout but I guess one way we can deal with it is to try to configure longer timeouts. I think the merger of the CSS tests may be making the timeout problem worse in the cause of the sync/submissions webhook at least.

Anyway in general if you look at the itemization of possible causes in #5413 (comment) from @bobholt, there are some of those causes that are easier to identify and troubleshoot and there are some which are a lot harder and more time-consuming to try to do that for.

In those cases I’m not sure what we can do expect re-trigger the webhooks and travis—and just watch/tail the logs when we do.

@foolip
Copy link
Member

foolip commented Apr 11, 2017

@sideshowbarker, is the webhook for w3c-test.org using HTTPS? I frequently fail to reach https://w3c-test.org/

@sideshowbarker
Copy link
Member

Yes the mirroring webhook is configured to use https://w3c-test.org/sync.py. I can try setting it to use http://w3c-test.org/sync.py instead but in the past I recall we had just as many problems with timeouts with http://w3c-test.org/sync.py as we did with https://w3c-test.org/sync.py. Maybe more, actually.

@foolip
Copy link
Member

foolip commented Apr 11, 2017

Hmm, that is surprising, I've never had a problem with http://w3c-test.org and whenever https://w3c-test.org has been giving me trouble switching to HTTP has always seemed to fix the problem. It may all be coincidences, am I the only one who has drawn the conclusion that https://w3c-test.org is just generally unreliable?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants