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

Side by Side Diff: third_party/WebKit/LayoutTests/webaudio/resources/late-start-testing.js

Issue 1488693006: Fix flaky WebAudio layout tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 unified diff | Download patch
OLDNEW
(Empty)
1 function runLateStartTest(audit, context, node) {
2
3 // Set up a dummy signal path to keep the audio context running and spend
4 // processing time before calling start(0).
5 var osc = context.createOscillator();
6 var silent = context.createGain();
7
8 osc.connect(silent);
9 silent.connect(context.destination);
10 silent.gain.setValueAtTime(0.0, 0);
11 osc.start();
12
13 node.connect(context.destination);
14
15 // Task: define |onstatechange| and start rendering.
16 audit.defineTask('test-late-start', function (done) {
17
18 // Trigger playback at 0 second. The assumptions are:
19 //
20 // 1) The specified timing of start() call is already passed in terms of
21 // the context time. So the argument |0| will be clamped to the current
22 // context time.
23 // 2) The |onstatechange| event will be fired later than the 0 second
24 // context time.
25 //
26 // See issue: crbug.com/462167
27 context.onstatechange = function () {
28 if (context.state === 'running') {
29 node.start(0);
30 }
31 };
32
33 // Start rendering and verify result: this verifies if 1) the rendered
34 // buffer contains at least one non-zero value and 2) the non-zero value is
35 // found later than the first output sample.
36 context.startRendering().then(function (buffer) {
37
38 var nonZeroValueIndex = -1;
39 var channelData = buffer.getChannelData(0);
40 for (var i = 0; i < channelData.length; i++) {
41 if (channelData[i] !== 0) {
42 nonZeroValueIndex = i;
43 break;
44 }
45 }
46
47 if (nonZeroValueIndex === -1) {
48 testFailed('The rendered buffer was all zeros.');
49 } else if (nonZeroValueIndex === 0) {
50 testFailed('The first sample was non-zero value. It should be zero.');
51 } else {
52 testPassed('The rendered buffer contains non-zero values after the first sample.');
53 }
54
55 done();
56 });
57 });
58
59 audit.defineTask('finish-test', function (done) {
60 done();
61 finishJSTest();
62 });
63
64 audit.runTasks(
65 'test-late-start',
66 'finish-test'
67 );
68
69 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698