test_convolverNodeOOM.html (1157B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <title>Test ConvolverNode with very large buffer that triggers an OOM</title> 5 <script src="/tests/SimpleTest/SimpleTest.js"></script> 6 <script type="text/javascript" src="webaudio.js"></script> 7 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> 8 </head> 9 <body> 10 <pre id="test"> 11 <script class="testbody" type="text/javascript"> 12 13 var gTest = { 14 length: 2048, 15 numberOfChannels: 1, 16 skipOfflineContextTests: true, 17 createGraph(context) { 18 var source = context.createOscillator(); 19 var convolver = context.createConvolver(); 20 // Very big buffer that results in an OOM 21 try { 22 var buffer = context.createBuffer(2, 300000000, context.sampleRate) 23 buffer.getChannelData(0); 24 } catch(e) { 25 // OOM when attempting to create the buffer, this can happen on 32bits 26 // OSes. Simply return here. 27 return convolver; 28 } 29 source.connect(convolver); 30 try { 31 convolver.buffer = buffer; 32 } catch (e) { 33 // This can also OOM. 34 return convolver; 35 } 36 source.start(); 37 return convolver; 38 } 39 }; 40 41 runTest(); 42 43 </script> 44 </pre> 45 </body> 46 </html>