Closed Bug 1937854 Opened 2 months ago Closed 2 months ago

[wpt-sync] Sync PR 49736 - IndexedDB: Speed up and refactor IDBObjectStore get all WPTs

Categories

(Core :: Storage: IndexedDB, task, P4)

task

Tracking

()

RESOLVED FIXED
135 Branch
Tracking Status
firefox135 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 49736 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/49736
Details from upstream follow.

Steve Becker <stevebe@microsoft.com> wrote:

IndexedDB: Speed up and refactor IDBObjectStore get all WPTs

Updates test setup to only create the object store used by the test.
Prior to this change, test setup always created all object stores, but
each test only used a single object store.

The IDBObjectStore::getAllRecords() change
(https://chromium-review.googlesource.com/c/chromium/src/+/5911615)
introduced a large value test, which caused timeouts when running in
slow test environments. Skipping setup of the large value object store
improves test runtimes.

The change also adds META: timeout=long since the IDBObjectStore
get all WPTs include many test cases. This should also help prevent
future timeouts.

The change refactors the IDBObjectStore get all WPTs to run the same
test code. The change introduces the get_all_test() helper function
that includes a getAllFunctionName argument to select which
get all function to run: getAllKeys(), getAll() or
getAllRecords(). getAllFunctionName also selects which output
verification to perform, which either verifies an array of keys,
values, or IDBRecords. This refactoring eliminates code duplicated
across the IDBObjectStore get all WPTs.

Bug:378869818,383706488,382575666,380653805
Change-Id: I8c3351f6d19ac1bf016c7f478d64dbe4b415c7b8
Reviewed-on: https://chromium-review.googlesource.com/6098322
WPT-Export-Revision: eb699fa13940592c0d80a8accac5798e7706f536

Component: web-platform-tests → Storage: IndexedDB
Product: Testing → Core

CI Results

Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 24 tests and 24 subtests

Status Summary

Firefox

OK : 24
PASS: 260
FAIL: 192

Chrome

OK : 24
PASS: 452

Safari

OK : 24
PASS: 260
FAIL: 192

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /IndexedDB/idbindex_getAllRecords.tentative.any.serviceworker.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty index: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large value: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with Nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Query index key that matches multiple records: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with multiEntry index: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
  • /IndexedDB/idbindex_getAllRecords.tentative.any.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty index: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large value: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with Nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Query index key that matches multiple records: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with multiEntry index: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
  • /IndexedDB/idbindex_getAllRecords.tentative.any.worker.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty index: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large value: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with Nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Query index key that matches multiple records: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with multiEntry index: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
  • /IndexedDB/idbindex_getAllRecords.tentative.any.sharedworker.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty index: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large value: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with Nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Query index key that matches multiple records: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with multiEntry index: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
  • /IndexedDB/idbobjectstore_getAllRecords.tentative.any.worker.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Single item with generated key: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty object store: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large values: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with transaction.commit(): FAIL (Chrome: PASS, Safari: FAIL)
  • /IndexedDB/idbobjectstore_getAllRecords.tentative.any.serviceworker.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Single item with generated key: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty object store: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large values: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with transaction.commit(): FAIL (Chrome: PASS, Safari: FAIL)
  • /IndexedDB/idbobjectstore_getAllRecords.tentative.any.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Single item with generated key: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty object store: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large values: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with transaction.commit(): FAIL (Chrome: PASS, Safari: FAIL)
  • /IndexedDB/idbobjectstore_getAllRecords.tentative.any.sharedworker.html [wpt.fyi]
    • Single item: FAIL (Chrome: PASS, Safari: FAIL)
    • Single item with generated key: FAIL (Chrome: PASS, Safari: FAIL)
    • Empty object store: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with empty options: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with large values: FAIL (Chrome: PASS, Safari: FAIL)
    • Count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with upper excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with lower excluded bound range: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with bound range and count for generated keys: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with nonexistent key: FAIL (Chrome: PASS, Safari: FAIL)
    • Zero count: FAIL (Chrome: PASS, Safari: FAIL)
    • Max value count: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where first key < upperBound: FAIL (Chrome: PASS, Safari: FAIL)
    • Query with empty range where lowerBound < last key: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: next: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prev: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: nextunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction: prevunique: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction and query: FAIL (Chrome: PASS, Safari: FAIL)
    • Direction, query and count: FAIL (Chrome: PASS, Safari: FAIL)
    • Get all records with transaction.commit(): FAIL (Chrome: PASS, Safari: FAIL)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1345f7df181a [wpt PR 49736] - IndexedDB: Speed up and refactor IDBObjectStore get all WPTs, a=testonly
Status: NEW → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 135 Branch
You need to log in before you can comment on or make changes to this bug.