gecko-dev/dom/media/webaudio/test/test_scriptProcessorNode_playbackTime1.html
Ehsan Akhgari 09a262787c Bug 649012 - Fail mochitest-plains which use flaky timeouts (setTimeout(x) for x > 0); r=ted
We are white-listing the existing set of tests that use setTimeout
like this.  Hopefully these tests will be investigated and fixed
in the future, so that we can narrow down the white-list.

This check is only turned on for mochitest-plain for now.
2014-12-11 13:34:40 -05:00

43 lines
1.4 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<title>Test ScriptProcessorNode playbackTime for bug 970773</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
SimpleTest.requestFlakyTimeout("This test needs to wait until after the AudioContext's timer has started.");
addLoadEvent(
function() {
const delay = 0.1;
var context = new AudioContext();
SimpleTest.executeSoon( // to ensure that AudioContext has started
function() {
setTimeout( // wait for |delay|
function() {
var sp = context.createScriptProcessor(256);
sp.connect(context.destination);
sp.onaudioprocess =
function(e) {
var minimum =
(delay + e.inputBuffer.length/context.sampleRate) *
(1.0 - 1.0/Math.pow(2.0,52.0)); // double precision
ok(e.playbackTime >= minimum,
"playbackTime " + e.playbackTime +
" beyond expected minimum " + minimum);
sp.onaudioprocess = null;
SimpleTest.finish();
};
}, 1000 * delay);
});
});
</script>
</pre>
</body>
</html>