summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/compute-pressure/resources/pressure-helpers.js
blob: 5234cf2d78c90d559d3cfd8ee1b86d9b3fa97861 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'use strict';

// These tests rely on the User Agent providing an implementation of
// platform compute pressure backends.
//
// In Chromium-based browsers this implementation is provided by a polyfill
// in order to reduce the amount of test-only code shipped to users. To enable
// these tests the browser must be run with these options:
//
//   --enable-blink-features=MojoJS,MojoJSTest

let mockPressureService = undefined;

function pressure_test(func, name, properties) {
  promise_test(async t => {
    if (mockPressureService === undefined) {
      if (isChromiumBased) {
        const mocks =
            await import('/resources/chromium/mock-pressure-service.js');
        mockPressureService = mocks.mockPressureService;
      }
    }
    assert_implements(
        mockPressureService,
        'missing mockPressureService after initialization');

    mockPressureService.start();

    t.add_cleanup(() => {
      mockPressureService.reset();
      return mockPressureService.stop();
    });
    return func(t, mockPressureService);
  }, name, properties);
}