WebProcessCache should keep track of processes being added
[WebKit-https.git] / LayoutTests / webaudio / realtimeanalyser-fft-sizing.html
1 <!DOCTYPE html>
2
3 <html>
4 <head>
5 <script src="../resources/js-test.js"></script>
6 <script src="resources/audio-testing.js"></script>
7 </head>
8
9 <body>
10 <div id="description"></div>
11 <div id="console"></div>
12
13 <script>
14 description("Test that re-sizing the FFT arrays does not fail.");
15
16 jsTestIsAsync = true;
17
18 var doTest = function(fftSize, illegal) {
19     var c = new webkitOfflineAudioContext(1, 1000, 44100);
20     var a = c.createAnalyser();
21     try {
22         a.fftSize = fftSize;
23         if (illegal)
24            testFailed("No exception thrown for illegal fftSize " + fftSize + ".");
25         else
26            testPassed("Successfully set legal fftSize " +  fftSize + ".");
27     } catch(e) {
28         testPassed("Exception thrown for illegal fftSize " + fftSize + ".");
29     }
30     // This arbitrary size does not affect the correctness of the test.
31     var arr = new Float32Array(100);
32     a.getFloatFrequencyData(arr);
33 }
34
35 doTest(-1, true);
36 doTest(0, true);
37 doTest(1, true);
38 for (var i = 2; i <= 0x20000; i *= 2) {
39         if (i >= 32 && i <= 32768)
40         doTest(i, false);
41     else
42         doTest(i, true);
43     doTest(i + 1, true);
44 }
45
46 testPassed("webkitAudioContext survived multiple invalid FFT array resizings.");
47 finishJSTest();
48 </script>
49 </body>
50 </html>