54 lines
1.5 KiB
HTML
54 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>
|
|
realtimeanalyser-fft-sizing.html
|
|
</title>
|
|
<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 audit = Audit.createTaskRunner();
|
|
|
|
function doTest(fftSize, illegal, should) {
|
|
let c = new OfflineAudioContext(1, 1000, 44100);
|
|
let a = c.createAnalyser();
|
|
let message = 'Setting fftSize to ' + fftSize;
|
|
let tester = function() {
|
|
a.fftSize = fftSize;
|
|
};
|
|
|
|
if (illegal) {
|
|
should(tester, message).throw(DOMException, 'IndexSizeError');
|
|
} else {
|
|
should(tester, message).notThrow();
|
|
}
|
|
}
|
|
|
|
audit.define(
|
|
{
|
|
label: 'FFT size test',
|
|
description: 'Test that re-sizing the FFT arrays does not fail.'
|
|
},
|
|
function(task, should) {
|
|
doTest(-1, true, should);
|
|
doTest(0, true, should);
|
|
doTest(1, true, should);
|
|
for (let i = 2; i <= 0x20000; i *= 2) {
|
|
if (i >= 32 && i <= 32768)
|
|
doTest(i, false, should);
|
|
else
|
|
doTest(i, true, should);
|
|
doTest(i + 1, true, should);
|
|
}
|
|
|
|
task.done();
|
|
});
|
|
|
|
audit.run();
|
|
</script>
|
|
</body>
|
|
</html>
|