summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/compute-pressure/compute_pressure_timestamp.https.any.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/compute-pressure/compute_pressure_timestamp.https.any.js')
-rw-r--r--testing/web-platform/tests/compute-pressure/compute_pressure_timestamp.https.any.js90
1 files changed, 66 insertions, 24 deletions
diff --git a/testing/web-platform/tests/compute-pressure/compute_pressure_timestamp.https.any.js b/testing/web-platform/tests/compute-pressure/compute_pressure_timestamp.https.any.js
index 09caeb3478..18db1dac46 100644
--- a/testing/web-platform/tests/compute-pressure/compute_pressure_timestamp.https.any.js
+++ b/testing/web-platform/tests/compute-pressure/compute_pressure_timestamp.https.any.js
@@ -5,32 +5,73 @@
'use strict';
pressure_test(async (t, mockPressureService) => {
+ const [change, timeOrigin] = await new Promise(resolve => {
+ const observer = new PressureObserver(change => {
+ resolve([change, performance.timeOrigin]);
+ });
+ t.add_cleanup(() => observer.disconnect());
+ observer.observe('cpu');
+ mockPressureService.setPressureUpdate('cpu', 'critical');
+ mockPressureService.startPlatformCollector(/*sampleInterval=*/ 200);
+ });
+ assert_greater_than(change[0].time, timeOrigin);
+}, 'Timestamp from update should be greater than timeOrigin');
+
+pressure_test(async (t, mockPressureService) => {
const readings = ['nominal', 'fair', 'serious', 'critical'];
const sampleInterval = 250;
- const pressureChanges = await new Promise(async resolve => {
- const observerChanges = [];
- const observer = new PressureObserver(changes => {
- observerChanges.push(changes);
- }, {sampleInterval});
- observer.observe('cpu');
+ const pressureChanges = [];
+ const observer = new PressureObserver(changes => {
+ pressureChanges.push(changes);
+ });
+ observer.observe('cpu', {sampleInterval});
- mockPressureService.startPlatformCollector(sampleInterval / 2);
- let i = 0;
- // mockPressureService.updatesDelivered() does not necessarily match
- // pressureChanges.length, as system load and browser optimizations can
- // cause the actual timer used by mockPressureService to deliver readings
- // to be a bit slower or faster than requested.
- while (observerChanges.length < 4) {
- mockPressureService.setPressureUpdate(
- 'cpu', readings[i++ % readings.length]);
- await t.step_wait(
- () => mockPressureService.updatesDelivered() >= i,
- `At least ${i} readings have been delivered`);
- }
- observer.disconnect();
- resolve(observerChanges);
+ mockPressureService.startPlatformCollector(sampleInterval / 2);
+ let i = 0;
+ // mockPressureService.updatesDelivered() does not necessarily match
+ // pressureChanges.length, as system load and browser optimizations can
+ // cause the actual timer used by mockPressureService to deliver readings
+ // to be a bit slower or faster than requested.
+ while (pressureChanges.length < 4) {
+ mockPressureService.setPressureUpdate(
+ 'cpu', readings[i++ % readings.length]);
+ await t.step_wait(
+ () => mockPressureService.updatesDelivered() >= i,
+ `At least ${i} readings have been delivered`);
+ }
+ observer.disconnect();
+
+ assert_equals(pressureChanges.length, 4);
+ assert_greater_than(pressureChanges[1][0].time, pressureChanges[0][0].time);
+ assert_greater_than(pressureChanges[2][0].time, pressureChanges[1][0].time);
+ assert_greater_than(pressureChanges[3][0].time, pressureChanges[2][0].time);
+}, 'Timestamp difference between two changes should be continuously increasing');
+
+pressure_test(async (t, mockPressureService) => {
+ const readings = ['nominal', 'fair', 'serious', 'critical'];
+
+ const sampleInterval = 250;
+ const pressureChanges = [];
+ const observer = new PressureObserver(change => {
+ pressureChanges.push(change);
});
+ observer.observe('cpu', {sampleInterval});
+
+ mockPressureService.startPlatformCollector(sampleInterval / 2);
+ let i = 0;
+ // mockPressureService.updatesDelivered() does not necessarily match
+ // pressureChanges.length, as system load and browser optimizations can
+ // cause the actual timer used by mockPressureService to deliver readings
+ // to be a bit slower or faster than requested.
+ while (pressureChanges.length < 4) {
+ mockPressureService.setPressureUpdate(
+ 'cpu', readings[i++ % readings.length]);
+ await t.step_wait(
+ () => mockPressureService.updatesDelivered() >= i,
+ `At least ${i} readings have been delivered`);
+ }
+ observer.disconnect();
assert_equals(pressureChanges.length, 4);
assert_greater_than_equal(
@@ -46,10 +87,10 @@ pressure_test(async (t, mockPressureService) => {
const sampleInterval = 1000;
const observer = new PressureObserver(changes => {
pressureChanges.push(changes);
- }, {sampleInterval});
+ });
await new Promise(async resolve => {
- observer.observe('cpu');
+ observer.observe('cpu', {sampleInterval});
mockPressureService.setPressureUpdate('cpu', 'critical');
mockPressureService.startPlatformCollector(sampleInterval);
await t.step_wait(() => pressureChanges.length == 1);
@@ -71,5 +112,6 @@ pressure_test(async (t, mockPressureService) => {
// should be deleted. So the second PressureRecord is not discarded even
// though the time interval does not meet the requirement.
assert_less_than(
- pressureChanges[1][0].time - pressureChanges[0][0].time, sampleInterval);
+ (pressureChanges[1][0].time - pressureChanges[0][0].time),
+ sampleInterval);
}, 'disconnect() should update [[LastRecordMap]]');