Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html

Issue 2895963003: Apply layout-test-tidy to LayoutTests/webaudio (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html
diff --git a/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html b/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html
index 8bd161a5942012f087d44950aa400332bff67147..ab332e751ce00f6ab21b388f9fe244cd641345fe 100644
--- a/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html
+++ b/third_party/WebKit/LayoutTests/webaudio/AudioBufferSource/audiobuffersource-loop-comprehensive.html
@@ -1,240 +1,305 @@
<!DOCTYPE html>
-
<html>
-<head>
-<script src="../../resources/testharness.js"></script>
-<script src="../../resources/testharnessreport.js"></script>
-<script src="../resources/audit-util.js"></script>
-<script src="../resources/audit.js"></script>
-<script src="../resources/audiobuffersource-testing.js"></script>
-</head>
-
-<body>
-<script>
-let audit = Audit.createTaskRunner();
-
-// The following test cases assume an AudioBuffer of length 8 whose PCM data is a linear ramp, 0, 1, 2, 3,...
-// |description| is optional and will be computed from the other parameters. |offsetFrame| is
-// optional and defaults to 0.
-
-let tests = [
-
-{ description: "loop whole buffer by default with loopStart == loopEnd == 0",
- loopStartFrame: 0,
- loopEndFrame: 0,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] },
-
-{ description: "loop whole buffer explicitly",
- loopStartFrame: 0,
- loopEndFrame: 8,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] },
-
-{ description: "loop from middle to end of buffer",
- loopStartFrame: 4,
- loopEndFrame: 8,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,7,4,5,6,7,4,5,6,7] },
-
-{ description: "loop from start to middle of buffer",
- loopStartFrame: 0,
- loopEndFrame: 4,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3] },
-
-{ loopStartFrame: 4,
- loopEndFrame: 6,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,4,5,4,5,4,5,4,5,4,5] },
-
-{ loopStartFrame: 3,
- loopEndFrame: 7,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,3,4,5,6,3,4,5,6,3] },
-
-{ loopStartFrame: 4,
- loopEndFrame: 6,
- renderFrames: 16,
- playbackRate: 0.5,
- expected: [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 4, 4.5, 5, 5.5] },
-
-{ loopStartFrame: 4,
- loopEndFrame: 6,
- renderFrames: 16,
- playbackRate: 1.5,
- expected: [0, 1.5, 3, 4.5, 4, 5.5, 5, 4.5, 4, 5.5, 5, 4.5, 4, 5.5, 5, 4.5] },
-
-// Offset past loop end, so playback starts at loop start
-{ loopStartFrame: 2,
- loopEndFrame: 5,
- renderFrames: 16,
- playbackRate: 1,
- offsetFrame: 6,
- expected: [2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2] },
-
-// Offset before loop start, so start at offset and continue
-{ loopStartFrame: 3,
- loopEndFrame: 6,
- renderFrames: 16,
- playbackRate: 1,
- offsetFrame: 1,
- expected: [1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4] },
-
-// Offset between loop start and loop end, so start at offset and continue
-{ loopStartFrame: 3,
- loopEndFrame: 6,
- renderFrames: 16,
- playbackRate: 1,
- offsetFrame: 4,
- expected: [4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4] },
-
-{ description: "illegal playbackRate of 47 greater than loop length",
- loopStartFrame: 4,
- loopEndFrame: 6,
- renderFrames: 16,
- playbackRate: 47,
- expected: [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] },
-
-// Try illegal loop-points - they should be ignored and we'll loop the whole buffer.
-
-{ description: "illegal loop: loopStartFrame > loopEndFrame",
- loopStartFrame: 7,
- loopEndFrame: 3,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] },
-
-{ description: "illegal loop: loopStartFrame == loopEndFrame",
- loopStartFrame: 3,
- loopEndFrame: 3,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] },
-
-{ description: "illegal loop: loopStartFrame < 0",
- loopStartFrame: -8,
- loopEndFrame: 3,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] },
-
-{ description: "illegal loop: loopEndFrame > bufferLength",
- loopStartFrame: 0,
- loopEndFrame: 30000,
- renderFrames: 16,
- playbackRate: 1,
- expected: [0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7] },
-
-// Start a loop with a duration longer than the buffer. The output should be the data from frame 1
-// to 6, and then looping from 3 to 5 until 20 frames have been played.
-{ description: "loop from 3 -> 6 with offset 1 for 20 frames",
- loopStartFrame: 3,
- loopEndFrame: 6,
- playbackRate: 1,
- offsetFrame: 1,
- renderFrames: 30,
- durationFrames: 20,
- expected: [1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
-
-// Start a loop with a duration less than the length of the looping frames. The output should be
-// the data from frame 1 to 3, and then stopping because duration = 3
-{ description: "loop from 3 -> 8 with offset 1 for 3 frames",
- loopStartFrame: 3,
- loopEndFrame: 8,
- playbackRate: 1,
- offsetFrame: 1,
- durationFrames: 3,
- renderFrames: 30,
- expected: [1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] },
-
-// Start a loop with a duration less than the length of the looping frames. The output should be
-// the data from frame 1 to 3, and then stopping because duration = 3
-{ description: "loop from 3 -> 8 with offset 7 for 3 frames",
- loopStartFrame: 3,
- loopEndFrame: 8,
- playbackRate: 1,
- offsetFrame: 7,
- durationFrames: 3,
- renderFrames: 30,
- expected: [7, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] }
-
-];
-
-let sampleRate = 44100;
-let buffer;
-let bufferFrameLength = 8;
-let testSpacingFrames = 32;
-let testSpacingSeconds = testSpacingFrames / sampleRate;
-let totalRenderLengthFrames = tests.length * testSpacingFrames;
-
-function runLoopTest(context, testNumber, test, should) {
- let source = context.createBufferSource();
-
- source.buffer = buffer;
- source.playbackRate.value = test.playbackRate;
- source.loop = true;
- source.loopStart = test.loopStartFrame / context.sampleRate;
- source.loopEnd = test.loopEndFrame / context.sampleRate;
-
- let offset = test.offsetFrame ? test.offsetFrame / context.sampleRate : 0;
-
- source.connect(context.destination);
-
- // Render each test one after the other, spaced apart by testSpacingSeconds.
- let startTime = testNumber * testSpacingSeconds;
-
- // If durationFrames is given, run the test for the specified duration.
- if (test.durationFrames) {
- if (!test.renderFrames) {
- throw("renderFrames is required for test " + testNumber + ": " + test.description);
- } else {
- if (test.durationFrames > testSpacingFrames || test.durationFrames < 0) {
- throw("Test " + testNumber
- + ": durationFrames (" + test.durationFrames + ") outside the range [0, "
- + testSpacingFrames + "]");
- }
- source.start(startTime, offset, test.durationFrames / context.sampleRate);
+ <head>
+ <title>
+ audiobuffersource-loop-comprehensive.html
+ </title>
+ <script src="../../resources/testharness.js"></script>
+ <script src="../../resources/testharnessreport.js"></script>
+ <script src="../resources/audit-util.js"></script>
+ <script src="../resources/audit.js"></script>
+ <script src="../resources/audiobuffersource-testing.js"></script>
+ </head>
+ <body>
+ <script id="layout-test-code">
+ let audit = Audit.createTaskRunner();
+
+ // The following test cases assume an AudioBuffer of length 8 whose PCM
+ // data is a linear ramp, 0, 1, 2, 3,... |description| is optional and
+ // will be computed from the other parameters. |offsetFrame| is optional
+ // and defaults to 0.
+
+ let tests = [
+
+ {
+ description:
+ 'loop whole buffer by default with loopStart == loopEnd == 0',
+ loopStartFrame: 0,
+ loopEndFrame: 0,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
+ },
+
+ {
+ description: 'loop whole buffer explicitly',
+ loopStartFrame: 0,
+ loopEndFrame: 8,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
+ },
+
+ {
+ description: 'loop from middle to end of buffer',
+ loopStartFrame: 4,
+ loopEndFrame: 8,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7]
+ },
+
+ {
+ description: 'loop from start to middle of buffer',
+ loopStartFrame: 0,
+ loopEndFrame: 4,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3]
+ },
+
+ {
+ loopStartFrame: 4,
+ loopEndFrame: 6,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5, 4, 5]
+ },
+
+ {
+ loopStartFrame: 3,
+ loopEndFrame: 7,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 3, 4, 5, 6, 3, 4, 5, 6, 3]
+ },
+
+ {
+ loopStartFrame: 4,
+ loopEndFrame: 6,
+ renderFrames: 16,
+ playbackRate: 0.5,
+ expected:
+ [0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 4, 4.5, 5, 5.5]
+ },
+
+ {
+ loopStartFrame: 4,
+ loopEndFrame: 6,
+ renderFrames: 16,
+ playbackRate: 1.5,
+ expected:
+ [0, 1.5, 3, 4.5, 4, 5.5, 5, 4.5, 4, 5.5, 5, 4.5, 4, 5.5, 5, 4.5]
+ },
+
+ // Offset past loop end, so playback starts at loop start
+ {
+ loopStartFrame: 2,
+ loopEndFrame: 5,
+ renderFrames: 16,
+ playbackRate: 1,
+ offsetFrame: 6,
+ expected: [2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2, 3, 4, 2]
+ },
+
+ // Offset before loop start, so start at offset and continue
+ {
+ loopStartFrame: 3,
+ loopEndFrame: 6,
+ renderFrames: 16,
+ playbackRate: 1,
+ offsetFrame: 1,
+ expected: [1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4]
+ },
+
+ // Offset between loop start and loop end, so start at offset and
+ // continue
+ {
+ loopStartFrame: 3,
+ loopEndFrame: 6,
+ renderFrames: 16,
+ playbackRate: 1,
+ offsetFrame: 4,
+ expected: [4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4]
+ },
+
+ {
+ description: 'illegal playbackRate of 47 greater than loop length',
+ loopStartFrame: 4,
+ loopEndFrame: 6,
+ renderFrames: 16,
+ playbackRate: 47,
+ expected: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+ },
+
+ // Try illegal loop-points - they should be ignored and we'll loop the
+ // whole buffer.
+
+ {
+ description: 'illegal loop: loopStartFrame > loopEndFrame',
+ loopStartFrame: 7,
+ loopEndFrame: 3,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
+ },
+
+ {
+ description: 'illegal loop: loopStartFrame == loopEndFrame',
+ loopStartFrame: 3,
+ loopEndFrame: 3,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
+ },
+
+ {
+ description: 'illegal loop: loopStartFrame < 0',
+ loopStartFrame: -8,
+ loopEndFrame: 3,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
+ },
+
+ {
+ description: 'illegal loop: loopEndFrame > bufferLength',
+ loopStartFrame: 0,
+ loopEndFrame: 30000,
+ renderFrames: 16,
+ playbackRate: 1,
+ expected: [0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7]
+ },
+
+ // Start a loop with a duration longer than the buffer. The output
+ // should be the data from frame 1 to 6, and then looping from 3 to 5
+ // until 20 frames have been played.
+ {
+ description: 'loop from 3 -> 6 with offset 1 for 20 frames',
+ loopStartFrame: 3,
+ loopEndFrame: 6,
+ playbackRate: 1,
+ offsetFrame: 1,
+ renderFrames: 30,
+ durationFrames: 20,
+ expected: [
+ 1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3, 4, 5, 3,
+ 4, 5, 3, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ]
+ },
+
+ // Start a loop with a duration less than the length of the looping
+ // frames. The output should be the data from frame 1 to 3, and then
+ // stopping because duration = 3
+ {
+ description: 'loop from 3 -> 8 with offset 1 for 3 frames',
+ loopStartFrame: 3,
+ loopEndFrame: 8,
+ playbackRate: 1,
+ offsetFrame: 1,
+ durationFrames: 3,
+ renderFrames: 30,
+ expected: [
+ 1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ]
+ },
+
+ // Start a loop with a duration less than the length of the looping
+ // frames. The output should be the data from frame 1 to 3, and then
+ // stopping because duration = 3
+ {
+ description: 'loop from 3 -> 8 with offset 7 for 3 frames',
+ loopStartFrame: 3,
+ loopEndFrame: 8,
+ playbackRate: 1,
+ offsetFrame: 7,
+ durationFrames: 3,
+ renderFrames: 30,
+ expected: [
+ 7, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ]
}
- } else if (test.renderFrames) {
- let duration = test.renderFrames / context.sampleRate;
- if (test.renderFrames > testSpacingFrames || test.renderFrames < 0) {
- throw("Test " + testNumber
- + ": renderFrames (" + test.renderFrames + ") outside the range [0, "
- + testSpacingFrames + "]");
+
+ ];
+
+ let sampleRate = 44100;
+ let buffer;
+ let bufferFrameLength = 8;
+ let testSpacingFrames = 32;
+ let testSpacingSeconds = testSpacingFrames / sampleRate;
+ let totalRenderLengthFrames = tests.length * testSpacingFrames;
+
+ function runLoopTest(context, testNumber, test, should) {
+ let source = context.createBufferSource();
+
+ source.buffer = buffer;
+ source.playbackRate.value = test.playbackRate;
+ source.loop = true;
+ source.loopStart = test.loopStartFrame / context.sampleRate;
+ source.loopEnd = test.loopEndFrame / context.sampleRate;
+
+ let offset =
+ test.offsetFrame ? test.offsetFrame / context.sampleRate : 0;
+
+ source.connect(context.destination);
+
+ // Render each test one after the other, spaced apart by
+ // testSpacingSeconds.
+ let startTime = testNumber * testSpacingSeconds;
+
+ // If durationFrames is given, run the test for the specified duration.
+ if (test.durationFrames) {
+ if (!test.renderFrames) {
+ throw(
+ 'renderFrames is required for test ' + testNumber + ': ' +
+ test.description);
+ } else {
+ if (test.durationFrames > testSpacingFrames ||
+ test.durationFrames < 0) {
+ throw(
+ 'Test ' + testNumber + ': durationFrames (' +
+ test.durationFrames + ') outside the range [0, ' +
+ testSpacingFrames + ']');
+ }
+ source.start(
+ startTime, offset, test.durationFrames / context.sampleRate);
+ }
+ } else if (test.renderFrames) {
+ let duration = test.renderFrames / context.sampleRate;
+ if (test.renderFrames > testSpacingFrames || test.renderFrames < 0) {
+ throw(
+ 'Test ' + testNumber + ': renderFrames (' + test.renderFrames +
+ ') outside the range [0, ' + testSpacingFrames + ']');
+ }
+ source.start(startTime, offset);
+ source.stop(startTime + duration);
+ } else {
+ throw(
+ 'Test ' + testNumber +
+ ' must specify renderFrames and possibly durationFrames');
}
- source.start(startTime, offset);
- source.stop(startTime + duration);
- } else {
- throw("Test " + testNumber + " must specify renderFrames and possibly durationFrames");
- }
-}
-
-audit.define("AudioBufferSource looping test", function (task, should) {
- // Create offline audio context.
- let context = new OfflineAudioContext(1, totalRenderLengthFrames, sampleRate);
- buffer = createTestBuffer(context, bufferFrameLength);
-
- should(function () {
- for (let i = 0; i < tests.length; ++i)
- runLoopTest(context, i, tests[i], should);
- }, "Generate " + tests.length + " test cases").notThrow();
-
- context.startRendering()
- .then(function (audioBuffer) {
- checkAllTests(audioBuffer, should);
- task.done();
- });
-});
+ }
+
+ audit.define('AudioBufferSource looping test', function(task, should) {
+ // Create offline audio context.
+ let context =
+ new OfflineAudioContext(1, totalRenderLengthFrames, sampleRate);
+ buffer = createTestBuffer(context, bufferFrameLength);
-audit.run();
-</script>
+ should(function() {
+ for (let i = 0; i < tests.length; ++i)
+ runLoopTest(context, i, tests[i], should);
+ }, 'Generate ' + tests.length + ' test cases').notThrow();
+
+ context.startRendering().then(function(audioBuffer) {
+ checkAllTests(audioBuffer, should);
+ task.done();
+ });
+ });
-</body>
+ audit.run();
+ </script>
+ </body>
</html>

Powered by Google App Engine
This is Rietveld 408576698