fune/testing/web-platform/tests/js-self-profiling/max-buffer-size.window.js
Andrew Comminos 0e712b9616 Bug 1722104 [wpt PR 29770] - Clean up maxBufferSize JS Self-Profiling API WPT, a=testonly
Automatic update from web-platform-tests
Clean up maxBufferSize JS Self-Profiling API WPT

Remove erroneous assertTrue call, make profiler naming more descriptive,
and switch to `.window.js` style test to reduce boilerplate.

Bug: 956688
Change-Id: I320650ad08e319542e1d97aba4a582700973a63e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3050091
Commit-Queue: Andrew Comminos <acomminos@fb.com>
Commit-Queue: Nicolás Peña Moreno <npm@chromium.org>
Auto-Submit: Andrew Comminos <acomminos@fb.com>
Reviewed-by: Nicolás Peña Moreno <npm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#904945}

--

wpt-commits: 5c3f4b934d67c9f0c18ae06cf63f4a954c14c8fa
wpt-pr: 29770
2021-07-31 09:21:54 +00:00

49 lines
1.5 KiB
JavaScript

// META: script=resources/profile-utils.js
promise_test(async t => {
assert_throws_js(TypeError, () => {
new Profiler({ sampleInterval: 10 });
});
}, 'max buffer size must be defined');
promise_test(async t => {
const profiler = new Profiler({
sampleInterval: 10,
maxBufferSize: 2,
});
// Force 3 samples with a max buffer size of 2.
for (let i = 0; i < 3; i++) {
ProfileUtils.forceSample();
}
const trace = await profiler.stop();
assert_equals(trace.samples.length, 2);
}, 'max buffer size is not exceeded');
promise_test(async t => {
const largeBufferProfiler = new Profiler({ sampleInterval: 10, maxBufferSize: Number.MAX_SAFE_INTEGER });
const smallBufferProfiler = new Profiler({ sampleInterval: 10, maxBufferSize: 1 });
const watcher = new EventWatcher(t, smallBufferProfiler, ['samplebufferfull']);
largeBufferProfiler.addEventListener('samplebufferfull', () => {
assert_unreached('samplebufferfull invoked on wrong profiler');
largeBufferProfiler.stop();
smallBufferProfiler.stop();
});
smallBufferProfiler.addEventListener('samplebufferfull', () => {
largeBufferProfiler.stop();
smallBufferProfiler.stop();
});
// Force two samples to be taken, which should exceed
// |smallBufferProfiler|'s buffer size.
for (let i = 0; i < 2; i++) {
ProfileUtils.forceSample();
}
// Ensure that |smallBufferProfiler|'s buffer size is exceeded.
await watcher.wait_for('samplebufferfull');
}, 'ensure samplebufferfull is fired on full profiler');