commit f537ac2906c76c8827d81ec188b4054a883da996
parent e5e47f377c5c00c017263c325cec5117c007dfa2
Author: punithbnayak <punithbnayak@chromium.org>
Date: Mon, 10 Nov 2025 22:19:56 +0000
Bug 1999001 [wpt PR 55945] - [webaudio-testharness] Migrate maxdelay-rounding.html, a=testonly
Automatic update from web-platform-tests
[webaudio-testharness] Migrate maxdelay-rounding.html
Convert maxdelay-rounding.html from the legacy
audit.js runner to pure testharness.js
Change-Id: Ib85b754c53d72503debfbff94a28914f8328f26a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7104378
Reviewed-by: Dibyajyoti Pal <dibyapal@chromium.org>
Reviewed-by: Hongchan Choi <hongchan@chromium.org>
Commit-Queue: Punith Nayak <punithbnayak@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1541913}
--
wpt-commits: 01db1f533aeef40222d91d815d5ae2a9a0e389bf
wpt-pr: 55945
Diffstat:
1 file changed, 39 insertions(+), 52 deletions(-)
diff --git a/testing/web-platform/tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html b/testing/web-platform/tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html
@@ -7,72 +7,59 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/webaudio/resources/audit-util.js"></script>
- <script src="/webaudio/resources/audit.js"></script>
</head>
<body>
- <script id="layout-test-code">
- let sampleRate = 44100;
- let inputLengthSeconds = 1;
- let renderLengthSeconds = 2;
+ <script>
+ const sampleRate = 44100;
+ const inputLengthSeconds = 1;
+ const renderLengthSeconds = 2;
// Delay for one second plus 0.4 of a sample frame, to test that
// DelayNode is properly rounding up when calculating its buffer
// size (crbug.com/1065110).
- let delayTimeSeconds = 1 + 0.4 / sampleRate;
+ const delayTimeSeconds = 1 + 0.4 / sampleRate;
- let audit = Audit.createTaskRunner();
+ promise_test(async () => {
+ const context = new OfflineAudioContext({
+ numberOfChannels: 1,
+ length: sampleRate * renderLengthSeconds,
+ sampleRate: sampleRate,
+ });
- audit.define(
- {
- label: 'maxdelay-rounding',
- description: 'Test DelayNode when maxDelayTime requires rounding',
- },
- (task, should) => {
- let context = new OfflineAudioContext({
- numberOfChannels: 1,
- length: sampleRate * renderLengthSeconds,
- sampleRate: sampleRate,
- });
+ // Create a constant source to use as input.
+ const src = new ConstantSourceNode(context);
- // Create a constant source to use as input.
- let src = new ConstantSourceNode(context);
+ // Create a DelayNode to delay for delayTimeSeconds.
+ const delay = new DelayNode(context, {
+ maxDelayTime: delayTimeSeconds,
+ delayTime: delayTimeSeconds,
+ });
- // Create a DelayNode to delay for delayTimeSeconds.
- let delay = new DelayNode(context, {
- maxDelayTime: delayTimeSeconds,
- delayTime: delayTimeSeconds,
- });
+ src.connect(delay).connect(context.destination);
- src.connect(delay).connect(context.destination);
+ src.start();
+ const renderedBuffer = await context.startRendering();
+ const renderedData = renderedBuffer.getChannelData(0);
- src.start();
- context.startRendering()
- .then(renderedBuffer => {
- let renderedData = renderedBuffer.getChannelData(0);
+ // The first delayTimeSeconds of output should be silent.
+ const expectedSilentFrames = Math.floor(
+ delayTimeSeconds * sampleRate);
- // The first delayTimeSeconds of output should be silent.
- let expectedSilentFrames = Math.floor(
- delayTimeSeconds * sampleRate);
+ assert_constant_value(
+ renderedData.slice(0, expectedSilentFrames),
+ 0,
+ `output[0:${expectedSilentFrames - 1}]`);
- should(
- renderedData.slice(0, expectedSilentFrames),
- `output[0:${expectedSilentFrames - 1}]`)
- .beConstantValueOf(0);
-
- // The rest should be non-silent: that is, there should
- // be at least one non-zero sample. (Any reasonable
- // interpolation algorithm will make all these samples
- // non-zero, but I don't think that's guaranteed by the
- // spec, so we use a conservative test for now.)
- should(
- renderedData.slice(expectedSilentFrames),
- `output[${expectedSilentFrames}:]`)
- .notBeConstantValueOf(0);
- })
- .then(() => task.done());
- });
-
- audit.run();
+ // The rest should be non-silent: that is, there should
+ // be at least one non-zero sample. (Any reasonable
+ // interpolation algorithm will make all these samples
+ // non-zero, but I don't think that's guaranteed by the
+ // spec, so we use a conservative test for now.)
+ assert_not_constant_value_of(
+ renderedData.slice(expectedSilentFrames),
+ 0,
+ `output[${expectedSilentFrames}:]`);
+ }, 'Test DelayNode when maxDelayTime requires rounding');
</script>
</body>
</html>