<!DOCTYPE html>
<html>
  <head>
    <title>
      Test Creation of Huge AudioBuffer
    </title>
    <script src="../../imported/w3c/web-platform-tests/resources/testharness.js"></script>
    <script src="../../resources/testharnessreport.js"></script>
    <script src="../resources/audit.js"></script>
  </head>
  <body>
    <script id="layout-test-code">
      let audit = Audit.createTaskRunner();

      audit.define('huge buffer', (task, should) => {
        // Set options to try to allocate a huge amount of memory in an
        // AudioBuffer. This should fail gracefully with an error instead of
        // crashing with an OOM error.
        let options = {
          numberOfChannels: 32,
          length: 1 << 30,
          sampleRate: 16000
        };
        should(
            () => new AudioBuffer(options),
            'new AudioBuffer(' + JSON.stringify(options) + ')')
            .throw(DOMException, 'NotSupportedError');
        task.done();
      });

      audit.run();
    </script>
  </body>
</html>
