| 'use strict'; |
| |
| promise_test(async t => { |
| // The quantization thresholds and the quantized values that they lead to can |
| // be represented exactly in floating-point, so === comparison works. |
| |
| const update = await new Promise((resolve, reject) => { |
| const observer = new ComputePressureObserver( |
| resolve, {cpuUtilizationThresholds: [0.5], cpuSpeedThresholds: [0.5]}); |
| t.add_cleanup(() => observer.stop()); |
| observer.observe().catch(reject); |
| }); |
| |
| assert_equals(typeof update.cpuUtilization, 'number'); |
| assert_greater_than_equal(update.cpuUtilization, 0.0, 'cpuUtilization range'); |
| assert_less_than_equal(update.cpuUtilization, 1.0, 'cpuUtilization range'); |
| assert_in_array(update.cpuUtilization, [0.25, 0.75], |
| 'cpuUtilization quantization'); |
| |
| assert_equals(typeof update.cpuSpeed, 'number'); |
| assert_greater_than_equal(update.cpuSpeed, 0.0, 'cpuSpeed range'); |
| assert_less_than_equal(update.cpuSpeed, 1.0, 'cpuUSpeed range'); |
| assert_in_array(update.cpuSpeed, [0.25, 0.75], 'cpuSpeed quantization'); |
| }, 'An active ComputePressureObserver calls its callback at least once'); |