Changeset 265086 in webkit


Ignore:
Timestamp:
Jul 30, 2020 9:32:51 AM (4 years ago)
Author:
Chris Dumez
Message:

OfflineAudioContext.startRendering() should return a Promise
https://bugs.webkit.org/show_bug.cgi?id=214940

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

A lot of Web Audio web-platform-tests were unable to run properly due to OfflineAudioContext.startRendering()
not returning a Promise. Now that we fixed that, a lot of tests are actually running much further. We get a
lot of new PASS lines. We also get new FAIL lines too for subtests that are now running and failing but
previously could not even run.

  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-expected.txt:

Source/WebCore:

OfflineAudioContext.startRendering() should return a Promise:

This is important as it was preventing a lot of web-platform-tests from running
properly and our test coverage was therefore really poor.

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioDestinationNode.h:
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::finishedRendering):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::didFinishOfflineRendering):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::startRendering):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • Modules/webaudio/OfflineAudioContext.cpp:

(WebCore::OfflineAudioContext::startOfflineRendering):
(WebCore::OfflineAudioContext::didFinishOfflineRendering):

  • Modules/webaudio/OfflineAudioContext.h:
  • Modules/webaudio/OfflineAudioContext.idl:
  • Modules/webaudio/OfflineAudioDestinationNode.cpp:

(WebCore::OfflineAudioDestinationNode::startRendering):

  • Modules/webaudio/OfflineAudioDestinationNode.h:
Location:
trunk
Files:
57 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/TestExpectations

    r265007 r265086  
    314314imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html [ Pass Failure ]
    315315imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html [ Pass Failure ]
     316
     317# Some of the subchecks are failing and print out a different value every time.
     318imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting.html [ Pass Failure ]
     319imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html [ Pass Failure ]
     320imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling.html [ Pass Failure ]
     321imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html [ Pass Failure ]
     322imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping.html [ Pass Failure ]
     323imported/w3c/web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output.html [ Pass Failure ]
    316324
    317325webkit.org/b/176929 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html [ Pass Failure ]
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r265066 r265086  
     12020-07-30  Chris Dumez  <cdumez@apple.com>
     2
     3        OfflineAudioContext.startRendering() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=214940
     5
     6        Reviewed by Eric Carlson.
     7
     8        A lot of Web Audio web-platform-tests were unable to run properly due to OfflineAudioContext.startRendering()
     9        not returning a Promise. Now that we fixed that, a lot of tests are actually running much further. We get a
     10        lot of new PASS lines. We also get new FAIL lines too for subtests that are now running and failing but
     11        previously could not even run.
     12
     13        * web-platform-tests/webaudio/idlharness.https.window-expected.txt:
     14        * web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling-expected.txt:
     15        * web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt:
     16        * web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse-expected.txt:
     17        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain-expected.txt:
     18        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt:
     19        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-expected.txt:
     20        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended-expected.txt:
     21        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits-expected.txt:
     22        * web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling-expected.txt:
     23        * web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume-expected.txt:
     24        * web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order-expected.txt:
     25        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal-expected.txt:
     26        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt:
     27        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction-expected.txt:
     28        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt:
     29        * web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt:
     30        * web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt:
     31        * web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-expected.txt:
     32        * web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default-expected.txt:
     33        * web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt:
     34        * web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono-expected.txt:
     35        * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-expected.txt:
     36        * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay-expected.txt:
     37        * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay-expected.txt:
     38        * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay-expected.txt:
     39        * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt:
     40        * web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling-expected.txt:
     41        * web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt:
     42        * web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt:
     43        * web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
     44        * web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
     45        * web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation-expected.txt:
     46        * web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-expected.txt:
     47
    1482020-07-29  Clark Wang  <clark_wang@apple.com>
    249
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/idlharness.https.window-expected.txt

    r265066 r265086  
    113113PASS OfflineAudioContext interface: existence and properties of interface prototype object's "constructor" property
    114114PASS OfflineAudioContext interface: existence and properties of interface prototype object's @@unscopables property
    115 FAIL OfflineAudioContext interface: operation startRendering() assert_unreached: Throws "TypeError: Can only call OfflineAudioContext.startRendering on instances of OfflineAudioContext" instead of rejecting promise Reached unreachable code
     115PASS OfflineAudioContext interface: operation startRendering()
    116116PASS OfflineAudioContext interface: operation resume()
    117117FAIL OfflineAudioContext interface: operation suspend(double) assert_equals: property has wrong .length expected 1 but got 0
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "FFT scaling tests" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "FFT scaling tests"
    44PASS Audit report
    55PASS > [FFT scaling tests] Test Scaling of FFT in AnalyserNode
     6PASS   32-point FFT peak position is equal to 1.
     7PASS   32-point FFT peak value in dBFS is greater than or equal to -14.43.
     8PASS   64-point FFT peak position is equal to 2.
     9PASS   64-point FFT peak value in dBFS is greater than or equal to -13.56.
     10PASS   128-point FFT peak position is equal to 4.
     11PASS   128-point FFT peak value in dBFS is greater than or equal to -13.56.
     12PASS   256-point FFT peak position is equal to 8.
     13PASS   256-point FFT peak value in dBFS is greater than or equal to -13.56.
     14PASS   512-point FFT peak position is equal to 16.
     15PASS   512-point FFT peak value in dBFS is greater than or equal to -13.56.
     16PASS   1024-point FFT peak position is equal to 32.
     17PASS   1024-point FFT peak value in dBFS is greater than or equal to -13.56.
     18PASS   2048-point FFT peak position is equal to 64.
     19PASS   2048-point FFT peak value in dBFS is greater than or equal to -13.56.
     20PASS   4096-point FFT peak position is equal to 128.
     21PASS   4096-point FFT peak value in dBFS is greater than or equal to -13.56.
     22PASS   8192-point FFT peak position is equal to 256.
     23PASS   8192-point FFT peak value in dBFS is greater than or equal to -13.56.
     24PASS   16384-point FFT peak position is equal to 512.
     25PASS   16384-point FFT peak value in dBFS is greater than or equal to -13.56.
     26PASS   32768-point FFT peak position is equal to 1024.
     27PASS   32768-point FFT peak value in dBFS is greater than or equal to -13.56.
     28PASS < [FFT scaling tests] All assertions passed. (total 22 assertions)
    629PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    730
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-gain-expected.txt

    r230353 r265086  
    11
    2 FAIL Test effect of AnalyserNode on GainNode output undefined is not an object (evaluating 'context.startRendering().then')
     2FAIL Test effect of AnalyserNode on GainNode output assert_equals: analyser1 output expected 1 but got 0
    33
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-reuse-expected.txt

    r262405 r265086  
    11
    2 FAIL AudioBuffer can be reused between AudioBufferSourceNodes undefined is not an object (evaluating 'render_audio_context()
    3     .then')
     2PASS AudioBuffer can be reused between AudioBufferSourceNodes
    43
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-grain-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "Test setting the source buffer after starting the grain" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "Test setting the source buffer after starting the grain"
    54PASS Audit report
    65PASS > [Test setting the source buffer after starting the grain] 
    7 PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
     6FAIL X Buffer was played is not true. Got false. assert_true: expected true got false
     7FAIL < [Test setting the source buffer after starting the grain] 1 out of 1 assertions were failed. assert_true: expected true got false
     8FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
    89
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-one-sample-loop-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "one-sample-loop" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4             .then')"
     3PASS Executing "one-sample-loop"
    54PASS Audit report
    65PASS > [one-sample-loop] 
    7 PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
     6FAIL X Rendered data: Expected 1 for all values but found 1000 unexpected values:
     7        Index   Actual
     8        [0]     0
     9        [1]     0
     10        [2]     0
     11        [3]     0
     12        ...and 996 more errors. assert_true: expected true got false
     13FAIL < [one-sample-loop] 1 out of 1 assertions were failed. assert_true: expected true got false
     14FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
    815
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-start-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "Tests AudioBufferSourceNode start()" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "Tests AudioBufferSourceNode start()"
    44PASS Audit report
    55PASS > [Tests AudioBufferSourceNode start()] 
    6 PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
     6PASS   Case 0: start(when): implicitly play whole buffer from beginning to end is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].
     7PASS   Case 0: start(when): implicitly play whole buffer from beginning to end: tail contains only the constant 0.
     8PASS   Case 1: start(when, 0): play whole buffer from beginning to end explicitly giving offset of 0 is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].
     9PASS   Case 1: start(when, 0): play whole buffer from beginning to end explicitly giving offset of 0: tail contains only the constant 0.
     10PASS   Case 2: start(when, 0, 8_frames): play whole buffer from beginning to end explicitly giving offset of 0 and duration of 8 frames is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].
     11PASS   Case 2: start(when, 0, 8_frames): play whole buffer from beginning to end explicitly giving offset of 0 and duration of 8 frames: tail contains only the constant 0.
     12PASS   Case 3: start(when, 4_frames): play with explicit non-zero offset is identical to the array [4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0...].
     13PASS   Case 3: start(when, 4_frames): play with explicit non-zero offset: tail contains only the constant 0.
     14PASS   Case 4: start(when, 4_frames, 4_frames): play with explicit non-zero offset and duration is identical to the array [4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0...].
     15PASS   Case 4: start(when, 4_frames, 4_frames): play with explicit non-zero offset and duration: tail contains only the constant 0.
     16PASS   Case 5: start(when, 7_frames): play with explicit non-zero offset near end of buffer is identical to the array [7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...].
     17PASS   Case 5: start(when, 7_frames): play with explicit non-zero offset near end of buffer: tail contains only the constant 0.
     18FAIL X Case 6: start(when, 8_frames): play with explicit offset at end of buffer expected to be equal to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] but differs in 7 places:
     19        Index   Actual                  Expected
     20        [1]     1.0000000000000000e+0   0.0000000000000000e+0
     21        [2]     2.0000000000000000e+0   0.0000000000000000e+0
     22        [3]     3.0000000000000000e+0   0.0000000000000000e+0
     23        [4]     4.0000000000000000e+0   0.0000000000000000e+0
     24        ...and 3 more errors. assert_true: expected true got false
     25PASS   Case 6: start(when, 8_frames): play with explicit offset at end of buffer: tail contains only the constant 0.
     26FAIL X Case 7: start(when, 9_frames): play with explicit offset past end of buffer expected to be equal to the array [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] but differs in 7 places:
     27        Index   Actual                  Expected
     28        [1]     1.0000000000000000e+0   0.0000000000000000e+0
     29        [2]     2.0000000000000000e+0   0.0000000000000000e+0
     30        [3]     3.0000000000000000e+0   0.0000000000000000e+0
     31        [4]     4.0000000000000000e+0   0.0000000000000000e+0
     32        ...and 3 more errors. assert_true: expected true got false
     33PASS   Case 7: start(when, 9_frames): play with explicit offset past end of buffer: tail contains only the constant 0.
     34PASS   Case 8: start(when, 0, 15_frames): play with whole buffer, with long duration (clipped) is identical to the array [0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0...].
     35PASS   Case 8: start(when, 0, 15_frames): play with whole buffer, with long duration (clipped): tail contains only the constant 0.
     36FAIL < [Tests AudioBufferSourceNode start()] 2 out of 18 assertions were failed. assert_true: expected true got false
     37FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
    738
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-onended-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "absn-set-onended" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    4 FAIL Executing "absn-add-listener" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    5 FAIL Executing "osc-set-onended" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    6 FAIL Executing "osc-add-listener" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "absn-set-onended"
     4PASS Executing "absn-add-listener"
     5PASS Executing "osc-set-onended"
     6PASS Executing "osc-add-listener"
    77PASS Audit report
    88PASS > [absn-set-onended] 
     9PASS   AudioBufferSource.onended called when ended set directly is equal to true.
     10PASS < [absn-set-onended] All assertions passed. (total 1 assertions)
    911PASS > [absn-add-listener] 
     12PASS   AudioBufferSource.onended called when using addEventListener is equal to true.
     13PASS < [absn-add-listener] All assertions passed. (total 1 assertions)
    1014PASS > [osc-set-onended] 
     15PASS   Oscillator.onended called when ended set directly is equal to true.
     16PASS < [osc-set-onended] All assertions passed. (total 1 assertions)
    1117PASS > [osc-add-listener] 
     18PASS   Oscillator.onended called when using addEventListener is equal to true.
     19PASS < [osc-add-listener] All assertions passed. (total 1 assertions)
    1220PASS # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.
    1321
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiosource-time-limits-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "buffersource: huge stop time" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4             .then')"
    5 FAIL Executing "oscillator: huge stop time" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    6             .then')"
     3PASS Executing "buffersource: huge stop time"
     4PASS Executing "oscillator: huge stop time"
    75PASS Audit report
    86PASS > [buffersource: huge stop time] 
     7FAIL X Output from AudioBufferSource.stop(1e+300): Expected 1 for all values but found 1000 unexpected values:
     8        Index   Actual
     9        [0]     0
     10        [1]     0
     11        [2]     0
     12        [3]     0
     13        ...and 996 more errors. assert_true: expected true got false
     14FAIL < [buffersource: huge stop time] 1 out of 1 assertions were failed. assert_true: expected true got false
    915PASS > [oscillator: huge stop time] 
    10 PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.
     16FAIL X Peak amplitude from oscillator.stop(1e+300) is not greater than 0. Got 0. assert_true: expected true got false
     17FAIL < [oscillator: huge stop time] 1 out of 1 assertions were failed. assert_true: expected true got false
     18FAIL # AUDIT TASK RUNNER FINISHED: 2 out of 2 tasks were failed. assert_true: expected true got false
    1119
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/buffer-resampling-expected.txt

    r265066 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "interpolate" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "interpolate"
    54PASS Audit report
    65PASS > [interpolate] Interpolation of AudioBuffers to context sample rate
     6PASS   Interpolated sine wave equals [0,0.057564035058021545,0.11493717133998871,0.17192906141281128,0.22835084795951843,0.2840152382850647,0.3387378752231598,0.39233696460723877,0.44463497400283813,0.4954586327075958,0.5446387529373169,0.5920130610466003,0.6374237537384033,0.6807206869125366,0.7217600345611572,0.7604058980941772...] with an element-wise tolerance of {"absoluteThreshold":0.090348,"relativeThreshold":0}.
     7PASS   SNR (Infinity dB) is greater than or equal to 37.17.
     8PASS < [interpolate] All assertions passed. (total 2 assertions)
    79PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    810
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sample-accurate-scheduling-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "test"
    44PASS Audit report
    55PASS > [test] Test sample-accurate scheduling
     6PASS   Content of left and right channels match and is identical to the array [1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0...].
     7PASS   Non-zero sample found at sample offset 0 is true.
     8PASS   Non-zero sample found at sample offset 3 is true.
     9PASS   Non-zero sample found at sample offset 512 is true.
     10PASS   Non-zero sample found at sample offset 517 is true.
     11PASS   Non-zero sample found at sample offset 1000 is true.
     12PASS   Non-zero sample found at sample offset 1005 is true.
     13PASS   Non-zero sample found at sample offset 20000 is true.
     14PASS   Non-zero sample found at sample offset 21234 is true.
     15PASS   Non-zero sample found at sample offset 37590 is true.
     16PASS   Number of impulses found is equal to 9.
     17PASS   bad offset is equal to 0.
     18PASS < [test] All assertions passed. (total 12 assertions)
    619PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    720
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching-expected.txt

    r265066 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "buffer-stitching-1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'testBufferStitching(sampleRate, bufferRate, bufferLength)
    4                 .then')"
    5 FAIL Executing "buffer-stitching-2" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'testBufferStitching(sampleRate, bufferRate, bufferLength)
    6                 .then')"
     3PASS Executing "buffer-stitching-1"
     4PASS Executing "buffer-stitching-2"
    75PASS Audit report
    86PASS > [buffer-stitching-1] Subsample buffer stitching, same rates
    97PASS   Test 1: context.sampleRate is equal to 44100.
     8PASS   Stitched sine-wave buffers at sample rate 44100 equals [0,0.057564035058021545,0.11493717133998871,0.17192906141281128,0.22835084795951843,0.2840152382850647,0.3387378752231598,0.39233696460723877,0.44463497400283813,0.4954586327075958,0.5446387529373169,0.5920130610466003,0.6374237537384033,0.6807206869125366,0.7217600345611572,0.7604058980941772...] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.
     9PASS   SNR (Infinity dB) is greater than or equal to 85.58.
     10PASS < [buffer-stitching-1] All assertions passed. (total 3 assertions)
    1011PASS > [buffer-stitching-2] Subsample buffer stitching, different rates
    1112PASS   Test 2: context.sampleRate is equal to 44100.
     13PASS   Stitched sine-wave buffers at sample rate 43800 equals [0,0.057564035058021545,0.11493717133998871,0.17192906141281128,0.22835084795951843,0.2840152382850647,0.3387378752231598,0.39233696460723877,0.44463497400283813,0.4954586327075958,0.5446387529373169,0.5920130610466003,0.6374237537384033,0.6807206869125366,0.7217600345611572,0.7604058980941772...] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.
     14PASS   SNR (Infinity dB) is greater than or equal to 65.737.
     15PASS < [buffer-stitching-2] All assertions passed. (total 3 assertions)
    1216PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.
    1317
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-suspend-resume-expected.txt

    r262405 r265086  
    33PASS Executing "test-suspend"
    44PASS Executing "test-resume"
    5 FAIL Executing "test-after-close" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'p3.then')"
     5PASS Executing "test-after-close"
    66PASS Executing "resume-running-context"
    77PASS Audit report
     
    2121PASS > [test-after-close] Test state after context closed
    2222PASS   p3 = offlineContext.startRendering() did not throw an exception.
     23PASS   After close, offlineContext.state is equal to closed.
     24PASS   offlineContext.suspend() rejected correctly with InvalidStateError: The object is in an invalid state..
     25PASS   offlineContext.resume() rejected correctly with InvalidStateError: The object is in an invalid state..
     26PASS < [test-after-close] All assertions passed. (total 4 assertions)
    2327PASS > [resume-running-context] Test resuming a running context
    2428PASS   Create online context did not throw an exception.
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-order-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "Test connections" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'this._actual.then')"
     3PASS Executing "Test connections"
    44PASS Audit report
    55PASS > [Test connections] AudioNode connection order doesn't trigger assertion errors
    66PASS   Connecting nodes did not throw an exception.
     7PASS   OfflineContext startRendering() resolved correctly.
     8PASS < [Test connections] All assertions passed. (total 2 assertions)
    79PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    810
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-audioparam-expected.txt

    r262405 r265086  
     1
     2Harness Error (FAIL), message = Unhandled rejection: The object is in an invalid state.
    13
    24PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "disconnect(AudioParam)" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4             .then')"
    5 FAIL Executing "disconnect(AudioParam, output)" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    6             .then')"
     5PASS Executing "disconnect(AudioParam)"
     6PASS Executing "disconnect(AudioParam, output)"
    77PASS Executing "exceptions"
    88PASS Audit report
    99PASS > [disconnect(AudioParam)] 
     10FAIL X Channel #0 expected to have the value sequence of [2.25,1.5] but got 1 values, [0], instead of 2. assert_true: expected true got false
     11FAIL X The index of value change is not equal to 11136. Got -1. assert_true: expected true got false
     12FAIL < [disconnect(AudioParam)] 2 out of 2 assertions were failed. assert_true: expected true got false
    1013PASS > [disconnect(AudioParam, output)] 
     14FAIL X Channel #0 expected to have the value sequence of [3,1.5] but got 1 values, [0], instead of 2. assert_true: expected true got false
     15FAIL X The index of value change in channel #0 is not equal to 11136. Got -1. assert_true: expected true got false
     16FAIL X Channel #1 expected to have the value sequence of [6,3] but got 1 values, [0], instead of 2. assert_true: expected true got false
     17FAIL X The index of value change in channel #1 is not equal to 11136. Got -1. assert_true: expected true got false
     18FAIL < [disconnect(AudioParam, output)] 4 out of 4 assertions were failed. assert_true: expected true got false
    1119PASS > [exceptions] 
    1220FAIL X gain1.disconnect(gain3.gain) did not throw an exception. assert_true: expected true got false
     
    1422FAIL X splitter.disconnect(gain1.gain, 2) did not throw an exception. assert_true: expected true got false
    1523FAIL < [exceptions] 3 out of 3 assertions were failed. assert_true: expected true got false
    16 FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 3 tasks were failed. assert_true: expected true got false
     24FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 3 tasks were failed. assert_true: expected true got false
    1725
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-disconnect-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "disconnect()" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4             .then')"
    5 FAIL Executing "disconnect(output)" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    6             .then')"
    7 FAIL Executing "disconnect(AudioNode)" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    8             .then')"
    9 FAIL Executing "disconnect(AudioNode, output)" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    10             .then')"
    11 FAIL Executing "disconnect(AudioNode, output, input)" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    12             .then')"
     3PASS Executing "disconnect()"
     4PASS Executing "disconnect(output)"
     5PASS Executing "disconnect(AudioNode)"
     6PASS Executing "disconnect(AudioNode, output)"
     7PASS Executing "disconnect(AudioNode, output, input)"
    138PASS Executing "exceptions"
    14 FAIL Executing "disabled-outputs" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    15             .then')"
     9PASS Executing "disabled-outputs"
    1610PASS Audit report
    1711PASS > [disconnect()] 
     12PASS   Channel #0 contains only the constant 0.
     13PASS < [disconnect()] All assertions passed. (total 1 assertions)
    1814PASS > [disconnect(output)] 
     15PASS   Channel #0 contains only the constant 4.
     16PASS < [disconnect(output)] All assertions passed. (total 1 assertions)
    1917PASS > [disconnect(AudioNode)] 
     18FAIL X Channel #0: Expected 2 for all values but found 128 unexpected values:
     19        Index   Actual
     20        [0]     0
     21        [1]     0
     22        [2]     0
     23        [3]     0
     24        ...and 124 more errors. assert_true: expected true got false
     25FAIL < [disconnect(AudioNode)] 1 out of 1 assertions were failed. assert_true: expected true got false
    2026PASS > [disconnect(AudioNode, output)] 
     27FAIL X Channel #0: Expected 3 for all values but found 128 unexpected values:
     28        Index   Actual
     29        [0]     2
     30        [1]     2
     31        [2]     2
     32        [3]     2
     33        ...and 124 more errors. assert_true: expected true got false
     34FAIL < [disconnect(AudioNode, output)] 1 out of 1 assertions were failed. assert_true: expected true got false
    2135PASS > [disconnect(AudioNode, output, input)] 
     36FAIL X Channel #0: Expected 1 for all values but found 128 unexpected values:
     37        Index   Actual
     38        [0]     2
     39        [1]     2
     40        [2]     2
     41        [3]     2
     42        ...and 124 more errors. assert_true: expected true got false
     43FAIL X Channel #1: Expected 2 for all values but found 128 unexpected values:
     44        Index   Actual
     45        [0]     3
     46        [1]     3
     47        [2]     3
     48        [3]     3
     49        ...and 124 more errors. assert_true: expected true got false
     50PASS   Channel #2 contains only the constant 0.
     51FAIL < [disconnect(AudioNode, output, input)] 2 out of 3 assertions were failed. assert_true: expected true got false
    2252PASS > [exceptions] 
    2353PASS   splitter.disconnect(2) threw IndexSizeError: "The index is not in the allowed range.".
     
    3161FAIL < [exceptions] 6 out of 8 assertions were failed. assert_true: expected true got false
    3262PASS > [disabled-outputs] 
    33 FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 7 tasks were failed. assert_true: expected true got false
     63PASS   Disabled outputs handled correctly
     64PASS < [disabled-outputs] All assertions passed. (total 1 assertions)
     65FAIL # AUDIT TASK RUNNER FINISHED: 4 out of 7 tasks were failed. assert_true: expected true got false
    3466
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-connect-audioratesignal-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "test"
    44PASS Audit report
    55PASS > [test] 
     6PASS   Rendered signal length is equal to 44100.
     7PASS   Rendered signal exactly matches the audio-rate gain changing signal is true.
     8PASS < [test] All assertions passed. (total 2 assertions)
    69PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    710
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-large-endtime-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "linearRamp" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'graph.context.startRendering()
    4             .then')"
    5 FAIL Executing "exponentialRamp" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'graph.context.startRendering()
    6             .then')"
     3PASS Executing "linearRamp"
     4PASS Executing "exponentialRamp"
    75PASS Audit report
    86PASS > [linearRamp] 
     7PASS   linearRampToValue(0.1, 1e+300) successfully rendered
     8PASS < [linearRamp] All assertions passed. (total 1 assertions)
    99PASS > [exponentialRamp] 
     10PASS   exponentialRampToValue(0.1, 1e+300) successfully rendered
     11PASS < [exponentialRamp] All assertions passed. (total 1 assertions)
    1012PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.
    1113
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-setValueCurve-exceptions-expected.txt

    r262405 r265086  
    33PASS Executing "setValueCurve"
    44PASS Executing "automations"
    5 FAIL Executing "catch-exception" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    6             .then')"
     5PASS Executing "catch-exception"
    76PASS Executing "start-end"
    87PASS Executing "curve overlap"
     
    3332FAIL < [automations] 8 out of 13 assertions were failed. assert_true: expected true got false
    3433PASS > [catch-exception] 
     34FAIL X Handled setValueCurve exception so output: Expected 1 for all values but found 6000 unexpected values:
     35        Index   Actual
     36        [0]     0
     37        [1]     0
     38        [2]     0
     39        [3]     0
     40        ...and 5996 more errors. assert_true: expected true got false
     41FAIL < [catch-exception] 1 out of 1 assertions were failed. assert_true: expected true got false
    3542PASS > [start-end] 
    3643PASS   setValueAtTime(1, 0) did not throw an exception.
     
    5966PASS   setValueCurveAtTime([1,2], 0, 0.01) did not throw an exception.
    6067FAIL < [curve lengths] 2 out of 3 assertions were failed. assert_true: expected true got false
    61 FAIL # AUDIT TASK RUNNER FINISHED: 4 out of 6 tasks were failed. assert_true: expected true got false
     68FAIL # AUDIT TASK RUNNER FINISHED: 5 out of 6 tasks were failed. assert_true: expected true got false
    6269
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/audioparam-summingjunction-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "test"
    44PASS Audit report
    55PASS > [test] 
     6PASS   Rendered signal length is equal to 44100.
     7PASS   Rendered signal matches sum of two audio-rate gain changing signals plus baseline gain is true.
     8PASS < [test] All assertions passed. (total 2 assertions)
    69PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    710
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setTargetAtTime-after-event-within-block-expected.txt

    r230353 r265086  
    11
    2 FAIL Test setTargetAtTime after an event in the same processing block undefined is not an object (evaluating 'context.startRendering().
    3     then')
     2FAIL Test setTargetAtTime after an event in the same processing block assert_equals: default gain at sample 0 expected 1 but got 0
    43
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/setValueAtTime-within-block-expected.txt

    r230353 r265086  
    11
    2 FAIL Test setValueAtTime with start time not on a block boundary undefined is not an object (evaluating 'context.startRendering().
    3     then')
     2FAIL Test setValueAtTime with start time not on a block boundary assert_equals: default gain at sample 0 expected 1 but got 0
    43
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-disconnect-expected.txt

    r262405 r265086  
     1
     2Harness Error (FAIL), message = Unhandled rejection: The object is in an invalid state.
    13
    24PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "silent-disconnect" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4             .then')"
     5PASS Executing "silent-disconnect"
    56PASS Audit report
    67PASS > [silent-disconnect] 
    7 PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
     8FAIL X Channel #0: Expected 1 for all values but found 22050 unexpected values:
     9        Index   Actual
     10        [0]     0
     11        [1]     0
     12        [2]     0
     13        [3]     0
     14        ...and 22046 more errors. assert_true: expected true got false
     15FAIL X Channel #1 expected to have the value sequence of [1,0] but got 1 values, [0], instead of 2. assert_true: expected true got false
     16FAIL X The index of first zero in the channel #1 is not equal to 11136. Got 1. assert_true: expected true got false
     17FAIL < [silent-disconnect] 3 out of 3 assertions were failed. assert_true: expected true got false
     18FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
    819
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "silent-channel" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    4 FAIL Executing "stereo-down-mixing" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    5 FAIL Executing "undefined-channel-layout" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    6 FAIL Executing "merging-to-stereo" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "silent-channel"
     4PASS Executing "stereo-down-mixing"
     5PASS Executing "undefined-channel-layout"
     6PASS Executing "merging-to-stereo"
    77PASS Audit report
    88PASS > [silent-channel] 
     9PASS   1-channel source: Channel #0 contains only the constant 0.
     10PASS   1-channel source: Channel #1 contains only the constant 0.
     11FAIL X 1-channel source: Channel #2: Expected 0 for all values but found 128 unexpected values:
     12        Index   Actual
     13        [0]     1
     14        [1]     1
     15        [2]     1
     16        [3]     1
     17        ...and 124 more errors. assert_true: expected true got false
     18FAIL X 1-channel source: Channel #3: Expected 1 for all values but found 128 unexpected values:
     19        Index   Actual
     20        [0]     0
     21        [1]     0
     22        [2]     0
     23        [3]     0
     24        ...and 124 more errors. assert_true: expected true got false
     25PASS   1-channel source: Channel #4 contains only the constant 0.
     26PASS   1-channel source: Channel #5 contains only the constant 0.
     27FAIL < [silent-channel] 2 out of 6 assertions were failed. assert_true: expected true got false
    928PASS > [stereo-down-mixing] 
     29FAIL X 2-channel source: Channel #0: Expected 1.5 for all values but found 128 unexpected values:
     30        Index   Actual
     31        [0]     0
     32        [1]     0
     33        [2]     0
     34        [3]     0
     35        ...and 124 more errors. assert_true: expected true got false
     36PASS   2-channel source: Channel #1 contains only the constant 0.
     37FAIL X 2-channel source: Channel #2: Expected 0 for all values but found 128 unexpected values:
     38        Index   Actual
     39        [0]     1.5
     40        [1]     1.5
     41        [2]     1.5
     42        [3]     1.5
     43        ...and 124 more errors. assert_true: expected true got false
     44PASS   2-channel source: Channel #3 contains only the constant 0.
     45PASS   2-channel source: Channel #4 contains only the constant 0.
     46PASS   2-channel source: Channel #5 contains only the constant 0.
     47FAIL < [stereo-down-mixing] 2 out of 6 assertions were failed. assert_true: expected true got false
    1048PASS > [undefined-channel-layout] 
     49FAIL X 3-channel source: Channel #0: Expected 1 for all values but found 128 unexpected values:
     50        Index   Actual
     51        [0]     0
     52        [1]     0
     53        [2]     0
     54        [3]     0
     55        ...and 124 more errors. assert_true: expected true got false
     56PASS   3-channel source: Channel #1 contains only the constant 0.
     57FAIL X 3-channel source: Channel #2: Expected 0 for all values but found 128 unexpected values:
     58        Index   Actual
     59        [0]     1
     60        [1]     1
     61        [2]     1
     62        [3]     1
     63        ...and 124 more errors. assert_true: expected true got false
     64PASS   3-channel source: Channel #3 contains only the constant 0.
     65PASS   3-channel source: Channel #4 contains only the constant 0.
     66PASS   3-channel source: Channel #5 contains only the constant 0.
     67FAIL < [undefined-channel-layout] 2 out of 6 assertions were failed. assert_true: expected true got false
    1168PASS > [merging-to-stereo] 
    12 PASS # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.
     69PASS   Channel #0 contains only the constant 1.
     70PASS   Channel #1 contains only the constant -1.
     71PASS < [merging-to-stereo] All assertions passed. (total 2 assertions)
     72FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 4 tasks were failed. assert_true: expected true got false
    1373
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelmergernode-interface/audiochannelmerger-input-non-default-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "silent-channel" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    4 FAIL Executing "stereo-down-mixing" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    5 FAIL Executing "undefined-channel-layout" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     3PASS Executing "silent-channel"
     4PASS Executing "stereo-down-mixing"
     5PASS Executing "undefined-channel-layout"
    66PASS Audit report
    77PASS > [silent-channel] 
     8FAIL X 1-channel source: Channel #0: Expected 0 for all values but found 128 unexpected values:
     9        Index   Actual
     10        [0]     1
     11        [1]     1
     12        [2]     1
     13        [3]     1
     14        ...and 124 more errors. assert_true: expected true got false
     15PASS   1-channel source: Channel #1 contains only the constant 0.
     16PASS   1-channel source: Channel #2 contains only the constant 0.
     17PASS   1-channel source: Channel #3 contains only the constant 0.
     18PASS   1-channel source: Channel #4 contains only the constant 0.
     19PASS   1-channel source: Channel #5 contains only the constant 0.
     20FAIL X 1-channel source: Channel #6: Expected 1 for all values but found 128 unexpected values:
     21        Index   Actual
     22        [0]     0
     23        [1]     0
     24        [2]     0
     25        [3]     0
     26        ...and 124 more errors. assert_true: expected true got false
     27FAIL < [silent-channel] 2 out of 7 assertions were failed. assert_true: expected true got false
    828PASS > [stereo-down-mixing] 
     29FAIL X 2-channel source: Channel #0: Expected 0 for all values but found 128 unexpected values:
     30        Index   Actual
     31        [0]     1.5
     32        [1]     1.5
     33        [2]     1.5
     34        [3]     1.5
     35        ...and 124 more errors. assert_true: expected true got false
     36PASS   2-channel source: Channel #1 contains only the constant 0.
     37PASS   2-channel source: Channel #2 contains only the constant 0.
     38PASS   2-channel source: Channel #3 contains only the constant 0.
     39PASS   2-channel source: Channel #4 contains only the constant 0.
     40PASS   2-channel source: Channel #5 contains only the constant 0.
     41FAIL X 2-channel source: Channel #6: Expected 1.5 for all values but found 128 unexpected values:
     42        Index   Actual
     43        [0]     0
     44        [1]     0
     45        [2]     0
     46        [3]     0
     47        ...and 124 more errors. assert_true: expected true got false
     48FAIL < [stereo-down-mixing] 2 out of 7 assertions were failed. assert_true: expected true got false
    949PASS > [undefined-channel-layout] 
    10 PASS # AUDIT TASK RUNNER FINISHED: 3 tasks ran successfully.
     50FAIL X 3-channel source: Channel #0: Expected 0 for all values but found 128 unexpected values:
     51        Index   Actual
     52        [0]     1
     53        [1]     1
     54        [2]     1
     55        [3]     1
     56        ...and 124 more errors. assert_true: expected true got false
     57PASS   3-channel source: Channel #1 contains only the constant 0.
     58PASS   3-channel source: Channel #2 contains only the constant 0.
     59PASS   3-channel source: Channel #3 contains only the constant 0.
     60PASS   3-channel source: Channel #4 contains only the constant 0.
     61PASS   3-channel source: Channel #5 contains only the constant 0.
     62FAIL X 3-channel source: Channel #6: Expected 1 for all values but found 128 unexpected values:
     63        Index   Actual
     64        [0]     0
     65        [1]     0
     66        [2]     0
     67        [3]     0
     68        ...and 124 more errors. assert_true: expected true got false
     69FAIL < [undefined-channel-layout] 2 out of 7 assertions were failed. assert_true: expected true got false
     70FAIL # AUDIT TASK RUNNER FINISHED: 3 out of 3 tasks were failed. assert_true: expected true got false
    1171
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-channelsplitternode-interface/audiochannelsplitter-expected.txt

    r265066 r265086  
    22PASS # AUDIT TASK RUNNER STARTED.
    33PASS Executing "construction"
    4 FAIL Executing "functionality" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    5                 .then')"
     4PASS Executing "functionality"
    65PASS Audit report
    76PASS > [construction] Construction of ChannelSplitterNode
     
    1514PASS < [construction] All assertions passed. (total 7 assertions)
    1615PASS > [functionality] Functionality of ChannelSplitterNode
     16PASS   Left channel contains only the constant -1.
     17PASS   Right channel contains only the constant 1.
     18PASS   Left and right channels were exchanged correctly
     19PASS < [functionality] All assertions passed. (total 3 assertions)
    1720PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.
    1821
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/convolution-mono-mono-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4             .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] 
     6PASS   Deviation (in dB) of triangular portion of convolution is less than or equal to -124.41.
     7PASS   Deviation in first part of tail of convolutions is less than or equal to -129.7.
     8PASS   Rendered signal after tail of convolution is silent is true.
     9PASS   Test signal convolved correctly
     10PASS < [test] All assertions passed. (total 4 assertions)
    711PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    812
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] Tests attribute and basic functionality of DelayNode
     
    109PASS   delay.delayTime.value is equal to 0.
    1110PASS   delay.delayTime.value = 0.5 is equal to 0.5.
     11PASS   Delaying test signal by 0.5 sec was done correctly
     12PASS < [test] All assertions passed. (total 6 assertions)
    1213PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    1314
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-default-delay-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] DelayNode with delay set to default maximum delay
     6PASS   Delaying test signal by 1 sec was done correctly
     7PASS < [test] All assertions passed. (total 1 assertions)
    78PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    89
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-max-nondefault-delay-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] DelayNode with delay set to non-default maximum delay
     6PASS   Delaying test signal by 1.5 sec was done correctly
     7PASS < [test] All assertions passed. (total 1 assertions)
    78PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    89
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelay-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] Basic functionality of DelayNode with a non-default max delay time
     6PASS   Delaying test signal by 1.5 sec was done correctly
     7PASS < [test] All assertions passed. (total 1 assertions)
    78PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    89
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-maxdelaylimit-expected.txt

    r264620 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] Tests attribute and maximum allowed delay of DelayNode
     
    109PASS   Setting Delay length to NaN threw TypeError: "The provided value is non-finite".
    1110PASS   delay.delayTime.value = 0.5 is equal to 0.5.
     11PASS   Delaying test signal by 0.5 sec was done correctly
     12PASS < [test] All assertions passed. (total 6 assertions)
    1213PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    1314
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-scheduling-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] DelayNode delayTime parameter can be scheduled at a given time
     6PASS   Delaying test signal by 0.5 sec was done correctly
     7PASS < [test] All assertions passed. (total 1 assertions)
    78PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    89
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/current-time-block-size-expected.txt

    r230353 r265086  
    11
    2 FAIL Test currentTime at completion of OfflineAudioContext rendering undefined is not an object (evaluating 'context.startRendering().
    3     then')
     2FAIL Test currentTime at completion of OfflineAudioContext rendering promise_test: Unhandled rejection with value: object "InvalidStateError: The object is in an invalid state."
    43
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/detune-limiting-expected.txt

    r265066 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "detune limits" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
    5 FAIL Executing "detune automation" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    6                 .then')"
     3PASS Executing "detune limits"
     4PASS Executing "detune automation"
    75PASS Audit report
    86PASS > [detune limits] Oscillator with detune and frequency at Nyquist or above
     7PASS   Context sample rate is equal to 44100.
     8PASS   Reference oscillator frequency is greater than or equal to 22050.
     9PASS   Osc(freq: 44100.00390625) output contains only the constant 0.
     10PASS   Osc(freq: 1, detune: 18514.189453125) output equals [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
     11PASS < [detune limits] All assertions passed. (total 4 assertions)
    912PASS > [detune automation] Oscillator output with detune automation should be zero above Nyquist
    10 PASS # AUDIT TASK RUNNER FINISHED: 2 tasks ran successfully.
     13PASS   Frame where detuned oscillator reaches Nyquist is equal to 5.
     14PASS   osc[0:4] is not constantly 0 (contains 4 different values).
     15FAIL X osc[5:]: Expected 0 for all values but found 5506 unexpected values:
     16        Index   Actual
     17        [0]     0.0007123813265934587
     18        [1]     0.0008548574987798929
     19        [2]     0.000997333787381649
     20        [3]     0.0011398100759834051
     21        ...and 5502 more errors. assert_true: expected true got false
     22FAIL < [detune automation] 1 out of 3 assertions were failed. assert_true: expected true got false
     23FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 2 tasks were failed. assert_true: expected true got false
    1124
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-oscillatornode-interface/osc-basic-waveform-expected.txt

    r264941 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "Test 0" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'renderedBuffer.getChannelData')"
    4 FAIL Executing "Test 1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'renderedBuffer.getChannelData')"
    5 FAIL Executing "Test 2" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'renderedBuffer.getChannelData')"
    6 FAIL Executing "Test 3" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'renderedBuffer.getChannelData')"
    7 FAIL Executing "Test 4" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'renderedBuffer.getChannelData')"
    8 FAIL Executing "Test 5" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'renderedBuffer.getChannelData')"
     3FAIL Executing "Test 0" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new AudioBuffer({length: nsamples, sampleRate: context.sampleRate})')"
     4FAIL Executing "Test 1" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new AudioBuffer({length: nsamples, sampleRate: context.sampleRate})')"
     5FAIL Executing "Test 2" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new AudioBuffer({length: nsamples, sampleRate: context.sampleRate})')"
     6FAIL Executing "Test 3" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new AudioBuffer({length: nsamples, sampleRate: context.sampleRate})')"
     7FAIL Executing "Test 4" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new AudioBuffer({length: nsamples, sampleRate: context.sampleRate})')"
     8FAIL Executing "Test 5" promise_test: Unhandled rejection with value: object "TypeError: function is not a constructor (evaluating 'new AudioBuffer({length: nsamples, sampleRate: context.sampleRate})')"
    99PASS Audit report
    1010PASS > [Test 0] Sine wave: 100 Hz
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt

    r263118 r265086  
     1
     2Harness Error (FAIL), message = Unhandled rejection: The object is in an invalid state.
    13
    24PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "Stereo panner.positionX" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    4 FAIL Executing "Mono panner.positionX" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    5 FAIL Executing "Stereo panner.positionY" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    6 FAIL Executing "Mono panner.positionY" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    7 FAIL Executing "Stereo panner.positionZ" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    8 FAIL Executing "Mono panner.positionZ" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     5PASS Executing "Stereo panner.positionX"
     6PASS Executing "Mono panner.positionX"
     7PASS Executing "Stereo panner.positionY"
     8PASS Executing "Mono panner.positionY"
     9PASS Executing "Stereo panner.positionZ"
     10PASS Executing "Mono panner.positionZ"
    911FAIL Executing "Stereo listener.positionX" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'pannerSetter.value = 1')"
    1012FAIL Executing "Mono listener.positionX" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'pannerSetter.value = 1')"
     
    1315FAIL Executing "Stereo listener.positionZ" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'pannerSetter.value = 1')"
    1416FAIL Executing "Mono listener.positionZ" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'pannerSetter.value = 1')"
    15 FAIL Executing "setPosition" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    16             .then')"
    17 FAIL Executing "orientation setter" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    18             .then')"
    19 FAIL Executing "forward setter" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    20             .then')"
    21 FAIL Executing "up setter" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    22             .then')"
     17PASS Executing "setPosition"
     18PASS Executing "orientation setter"
     19PASS Executing "forward setter"
     20PASS Executing "up setter"
    2321PASS Audit report
    2422PASS > [Stereo panner.positionX] 
     23PASS   Stereo panner.positionX.value frame [0, 128) channel 0 contains only the constant 0.
     24PASS   Stereo panner.positionX.value frame [0, 128) channel 1 contains only the constant 0.
     25PASS   Stereo panner.positionX.value frame [128, 256) channel 0 contains only the constant 0.
     26PASS   Stereo panner.positionX.value frame [128, 256) channel 1 contains only the constant 0.
     27FAIL X Stereo panner.positionX: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     28FAIL X Stereo panner.positionX: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     29FAIL < [Stereo panner.positionX] 2 out of 6 assertions were failed. assert_true: expected true got false
    2530PASS > [Mono panner.positionX] 
     31PASS   Mono panner.positionX.value frame [0, 128) channel 0 contains only the constant 0.
     32PASS   Mono panner.positionX.value frame [0, 128) channel 1 contains only the constant 0.
     33PASS   Mono panner.positionX.value frame [128, 256) channel 0 contains only the constant 0.
     34PASS   Mono panner.positionX.value frame [128, 256) channel 1 contains only the constant 0.
     35FAIL X Mono panner.positionX: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     36FAIL X Mono panner.positionX: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     37FAIL < [Mono panner.positionX] 2 out of 6 assertions were failed. assert_true: expected true got false
    2638PASS > [Stereo panner.positionY] 
     39PASS   Stereo panner.positionY.value frame [0, 128) channel 0 contains only the constant 0.
     40PASS   Stereo panner.positionY.value frame [0, 128) channel 1 contains only the constant 0.
     41PASS   Stereo panner.positionY.value frame [128, 256) channel 0 contains only the constant 0.
     42PASS   Stereo panner.positionY.value frame [128, 256) channel 1 contains only the constant 0.
     43FAIL X Stereo panner.positionY: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     44FAIL X Stereo panner.positionY: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     45FAIL < [Stereo panner.positionY] 2 out of 6 assertions were failed. assert_true: expected true got false
    2746PASS > [Mono panner.positionY] 
     47PASS   Mono panner.positionY.value frame [0, 128) channel 0 contains only the constant 0.
     48PASS   Mono panner.positionY.value frame [0, 128) channel 1 contains only the constant 0.
     49PASS   Mono panner.positionY.value frame [128, 256) channel 0 contains only the constant 0.
     50PASS   Mono panner.positionY.value frame [128, 256) channel 1 contains only the constant 0.
     51FAIL X Mono panner.positionY: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     52FAIL X Mono panner.positionY: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     53FAIL < [Mono panner.positionY] 2 out of 6 assertions were failed. assert_true: expected true got false
    2854PASS > [Stereo panner.positionZ] 
     55PASS   Stereo panner.positionZ.value frame [0, 128) channel 0 contains only the constant 0.
     56PASS   Stereo panner.positionZ.value frame [0, 128) channel 1 contains only the constant 0.
     57PASS   Stereo panner.positionZ.value frame [128, 256) channel 0 contains only the constant 0.
     58PASS   Stereo panner.positionZ.value frame [128, 256) channel 1 contains only the constant 0.
     59FAIL X Stereo panner.positionZ: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     60FAIL X Stereo panner.positionZ: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     61FAIL < [Stereo panner.positionZ] 2 out of 6 assertions were failed. assert_true: expected true got false
    2962PASS > [Mono panner.positionZ] 
     63PASS   Mono panner.positionZ.value frame [0, 128) channel 0 contains only the constant 0.
     64PASS   Mono panner.positionZ.value frame [0, 128) channel 1 contains only the constant 0.
     65PASS   Mono panner.positionZ.value frame [128, 256) channel 0 contains only the constant 0.
     66PASS   Mono panner.positionZ.value frame [128, 256) channel 1 contains only the constant 0.
     67FAIL X Mono panner.positionZ: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     68FAIL X Mono panner.positionZ: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     69FAIL < [Mono panner.positionZ] 2 out of 6 assertions were failed. assert_true: expected true got false
    3070PASS > [Stereo listener.positionX] 
    3171PASS > [Mono listener.positionX] 
     
    3575PASS > [Mono listener.positionZ] 
    3676PASS > [setPosition] 
     77PASS   setPosition.value frame [0, 128) channel 0 contains only the constant 0.
     78PASS   setPosition.value frame [0, 128) channel 1 contains only the constant 0.
     79PASS   setPosition.value frame [128, 256) channel 0 contains only the constant 0.
     80PASS   setPosition.value frame [128, 256) channel 1 contains only the constant 0.
     81FAIL X setPosition: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     82FAIL X setPosition: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     83FAIL < [setPosition] 2 out of 6 assertions were failed. assert_true: expected true got false
    3784PASS > [orientation setter] 
     85PASS   panner.orientation{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.
     86PASS   panner.orientation{XYZ}.value frame [0, 128) channel 1 contains only the constant 0.
     87PASS   panner.orientation{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.
     88PASS   panner.orientation{XYZ}.value frame [128, 256) channel 1 contains only the constant 0.
     89FAIL X panner.orientation{XYZ}: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     90FAIL X panner.orientation{XYZ}: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     91FAIL < [orientation setter] 2 out of 6 assertions were failed. assert_true: expected true got false
    3892PASS > [forward setter] 
     93PASS   listener.forward{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.
     94PASS   listener.forward{XYZ}.value frame [0, 128) channel 1 contains only the constant 0.
     95PASS   listener.forward{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.
     96PASS   listener.forward{XYZ}.value frame [128, 256) channel 1 contains only the constant 0.
     97FAIL X listener.forward{XYZ}: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     98FAIL X listener.forward{XYZ}: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     99FAIL < [forward setter] 2 out of 6 assertions were failed. assert_true: expected true got false
    39100PASS > [up setter] 
    40 PASS # AUDIT TASK RUNNER FINISHED: 16 tasks ran successfully.
     101PASS   listener.up{XYZ}.value frame [0, 128) channel 0 contains only the constant 0.
     102PASS   listener.up{XYZ}.value frame [0, 128) channel 1 contains only the constant 0.
     103PASS   listener.up{XYZ}.value frame [128, 256) channel 0 contains only the constant 0.
     104PASS   listener.up{XYZ}.value frame [128, 256) channel 1 contains only the constant 0.
     105FAIL X listener.up{XYZ}: Output at frame 128 channel 0 should not be equal to 0. Got 0. assert_true: expected true got false
     106FAIL X listener.up{XYZ}: Output at frame 128 channel 1 should not be equal to 0. Got 0. assert_true: expected true got false
     107FAIL < [up setter] 2 out of 6 assertions were failed. assert_true: expected true got false
     108FAIL # AUDIT TASK RUNNER FINISHED: 10 out of 16 tasks were failed. assert_true: expected true got false
    41109
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt

    r263118 r265086  
     1CONSOLE MESSAGE: Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'context.listener.positionX.value')
     2
     3Harness Error (FAIL), message = Unhandled rejection: undefined is not an object (evaluating 'context.listener.positionX.value')
    14
    25PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "0: 1-channel inverse rolloff: 1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    4 FAIL Executing "0: 2-channel inverse rolloff: 1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    5 FAIL Executing "1: 1-channel inverse rolloff: 1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    6 FAIL Executing "1: 2-channel inverse rolloff: 1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    7 FAIL Executing "2: 1-channel exponential rolloff: 1.5" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    8 FAIL Executing "2: 2-channel exponential rolloff: 1.5" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    9 FAIL Executing "3: 1-channel linear rolloff: 1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    10 FAIL Executing "3: 2-channel linear rolloff: 1" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    11 PASS Audit report
     6TIMEOUT Executing "0: 1-channel inverse rolloff: 1" Test timed out
     7NOTRUN Executing "0: 2-channel inverse rolloff: 1"
     8NOTRUN Executing "1: 1-channel inverse rolloff: 1"
     9NOTRUN Executing "1: 2-channel inverse rolloff: 1"
     10NOTRUN Executing "2: 1-channel exponential rolloff: 1.5"
     11NOTRUN Executing "2: 2-channel exponential rolloff: 1.5"
     12NOTRUN Executing "3: 1-channel linear rolloff: 1"
     13NOTRUN Executing "3: 2-channel linear rolloff: 1"
     14NOTRUN Audit report
    1215PASS > [0: 1-channel inverse rolloff: 1] 
    13 PASS > [0: 2-channel inverse rolloff: 1] 
    14 PASS > [1: 1-channel inverse rolloff: 1] 
    15 PASS > [1: 2-channel inverse rolloff: 1] 
    16 PASS > [2: 1-channel exponential rolloff: 1.5] 
    17 PASS > [2: 2-channel exponential rolloff: 1.5] 
    18 PASS > [3: 1-channel linear rolloff: 1] 
    19 PASS > [3: 2-channel linear rolloff: 1] 
    20 PASS # AUDIT TASK RUNNER FINISHED: 8 tasks ran successfully.
    2116
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt

    r265066 r265086  
    33PASS Executing "ref-distance-error"
    44PASS Executing "max-distance-error"
    5 FAIL Executing "min-distance" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
    6 FAIL Executing "max-distance" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering().then')"
     5PASS Executing "min-distance"
     6PASS Executing "max-distance"
    77PASS Audit report
    88PASS > [ref-distance-error] 
     
    2323PASS < [max-distance-error] All assertions passed. (total 6 assertions)
    2424PASS > [min-distance] 
     25PASS   Model: linear: Distance (0.01) is outside the range [1, 10000] is equal to true.
     26PASS   Test panner output {"distance":0.01,"distanceModel":"linear"} is identical to the array [0,0.20702190697193146,0.4738078713417053,-0.23029835522174835,-0.4195944368839264,-0.025587772950530052,0.04287987947463989,0.45131322741508484,0.15709976851940155,-0.49066805839538574,-0.165401428937912,0.00021875571110285819,0.25102242827415466,0.44553595781326294,-0.29729732871055603,-0.3819781243801117...].
     27PASS   Model: inverse: Distance (0.01) is outside the range [1, 10000] is equal to true.
     28PASS   Test panner output {"distance":0.01,"distanceModel":"inverse"} is identical to the array [0,0.20702190697193146,0.4738078713417053,-0.23029835522174835,-0.4195944368839264,-0.025587772950530052,0.04287987947463989,0.45131322741508484,0.15709976851940155,-0.49066805839538574,-0.165401428937912,0.00021875571110285819,0.25102242827415466,0.44553595781326294,-0.29729732871055603,-0.3819781243801117...].
     29PASS   Model: linear: Distance (2) is outside the range [10, 1000] is equal to true.
     30PASS   Test panner output {"distance":2,"distanceModel":"linear","maxDistance":1000,"refDistance":10} is identical to the array [0,0.20702190697193146,0.4738078713417053,-0.23029835522174835,-0.4195944368839264,-0.025587772950530052,0.04287987947463989,0.45131322741508484,0.15709976851940155,-0.49066805839538574,-0.165401428937912,0.00021875571110285819,0.25102242827415466,0.44553595781326294,-0.29729732871055603,-0.3819781243801117...].
     31PASS   Model: exponential: Distance (2) is outside the range [10, 1000] is equal to true.
     32PASS   Test panner output {"distance":2,"distanceModel":"exponential","maxDistance":1000,"refDistance":10} is identical to the array [0,0.20702190697193146,0.4738078713417053,-0.23029835522174835,-0.4195944368839264,-0.025587772950530052,0.04287987947463989,0.45131322741508484,0.15709976851940155,-0.49066805839538574,-0.165401428937912,0.00021875571110285819,0.25102242827415466,0.44553595781326294,-0.29729732871055603,-0.3819781243801117...].
     33PASS   Model: exponential: Distance (0.01) is outside the range [1, 10000] is equal to true.
     34PASS   Test panner output {"distance":0.01,"distanceModel":"exponential"} is identical to the array [0,0.20702190697193146,0.4738078713417053,-0.23029835522174835,-0.4195944368839264,-0.025587772950530052,0.04287987947463989,0.45131322741508484,0.15709976851940155,-0.49066805839538574,-0.165401428937912,0.00021875571110285819,0.25102242827415466,0.44553595781326294,-0.29729732871055603,-0.3819781243801117...].
     35PASS   Model: inverse: Distance (2) is outside the range [10, 1000] is equal to true.
     36PASS   Test panner output {"distance":2,"distanceModel":"inverse","maxDistance":1000,"refDistance":10} is identical to the array [0,0.20702190697193146,0.4738078713417053,-0.23029835522174835,-0.4195944368839264,-0.025587772950530052,0.04287987947463989,0.45131322741508484,0.15709976851940155,-0.49066805839538574,-0.165401428937912,0.00021875571110285819,0.25102242827415466,0.44553595781326294,-0.29729732871055603,-0.3819781243801117...].
     37PASS < [min-distance] All assertions passed. (total 12 assertions)
    2538PASS > [max-distance] 
     39PASS   Model: linear: Distance (20000) is outside the range [1, 10000] is equal to true.
     40PASS   Test panner output {"distance":20000,"distanceModel":"linear"} is identical to the array [0,0.10351095348596573,0.23690393567085266,-0.11514917761087418,-0.2097972184419632,-0.012793886475265026,0.021439939737319946,0.22565661370754242,0.07854988425970078,-0.24533402919769287,-0.082700714468956,0.00010937785555142909,0.12551121413707733,0.22276797890663147,-0.14864866435527802,-0.19098906219005585...].
     41PASS   Model: exponential: Distance (21000) is outside the range [1, 10000] is equal to true.
     42PASS   Test panner output {"distance":21000,"distanceModel":"exponential"} is identical to the array [0,0.002070219023153186,0.004738078452646732,-0.0023029835429042578,-0.004195944406092167,-0.0002558777341619134,0.00042879878310486674,0.004513132385909557,0.0015709976432844996,-0.0049066804349422455,-0.0016540142241865396,0.000002187557129218476,0.002510224236175418,0.004455359652638435,-0.0029729732777923346,-0.0038197811227291822...].
     43PASS   Model: inverse: Distance (23000) is outside the range [1, 10000] is equal to true.
     44PASS   Test panner output {"distance":23000,"distanceModel":"inverse"} is identical to the array [0,0.00004140024248044938,0.0000947520966292359,-0.00004605506546795368,-0.00008391049777856097,-0.000005117042746860534,0.000008575118044973351,0.00009025361941894516,0.00003141681008855812,-0.00009812379721552134,-0.000033076976251322776,4.3746766209551424e-8,0.00005019946547690779,0.0000890982846613042,-0.00005945351949776523,-0.00007638798706466332...].
     45PASS   Model: linear: Distance (5000) is outside the range [10, 1000] is equal to true.
     46PASS   Test panner output {"distance":5000,"distanceModel":"linear","maxDistance":1000,"refDistance":10} is identical to the array [0,0.10351095348596573,0.23690393567085266,-0.11514917761087418,-0.2097972184419632,-0.012793886475265026,0.021439939737319946,0.22565661370754242,0.07854988425970078,-0.24533402919769287,-0.082700714468956,0.00010937785555142909,0.12551121413707733,0.22276797890663147,-0.14864866435527802,-0.19098906219005585...].
     47PASS   Model: exponential: Distance (5000) is outside the range [10, 1000] is equal to true.
     48PASS   Test panner output {"distance":5000,"distanceModel":"exponential","maxDistance":1000,"refDistance":10} is identical to the array [0,0.020702190697193146,0.04738078638911247,-0.023029835894703865,-0.04195944592356682,-0.002558777341619134,0.004287987947463989,0.045131321996450424,0.015709977596998215,-0.04906680807471275,-0.01654014363884926,0.00002187557220167946,0.025102242827415466,0.044553596526384354,-0.029729733243584633,-0.03819781169295311...].
     49PASS   Model: inverse: Distance (5000) is outside the range [10, 1000] is equal to true.
     50PASS   Test panner output {"distance":5000,"distanceModel":"inverse","maxDistance":1000,"refDistance":10} is identical to the array [0,0.004099443554878235,0.009382333606481552,-0.004560363478958607,-0.008308800868690014,-0.0005066885496489704,0.0008491065236739814,0.008936895057559013,0.003110886551439762,-0.009716198779642582,-0.003275275696069002,0.00000433179639003356,0.004970740992575884,0.008822494186460972,-0.0058870757929980755,-0.007563923019915819...].
     51PASS < [max-distance] All assertions passed. (total 12 assertions)
    2652PASS # AUDIT TASK RUNNER FINISHED: 4 tasks ran successfully.
    2753
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation-expected.txt

    r263118 r265086  
    11
    2 FAIL PannerNode AudioParam automation works properly undefined is not an object (evaluating 'ac.startRendering().then')
     2FAIL PannerNode AudioParam automation works properly assert_true: index 1111 should be on the right expected true got false
    33
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-scriptprocessornode-interface/simple-input-output-expected.txt

    r265066 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] ScriptProcessor with stopped input source
    7 PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
     6PASS   ScriptProcessor output[0:1023] contains only the constant 0.
     7FAIL X ScriptProcessor output[1024:1151] does not equal [1,1.0575640201568604,1.11493718624115,1.171929121017456,1.2283508777618408,1.28401517868042,1.3387378454208374,1.3923369646072388,1.4446349143981934,1.4954586029052734,1.544638752937317,1.5920131206512451,1.6374237537384033,1.6807206869125366,1.7217600345611572,1.7604058980941772...] with an element-wise tolerance of {"absoluteThreshold":0,"relativeThreshold":0}.
     8        Index   Actual                  Expected                AbsError                RelError                Test threshold
     9        [0]     0.0000000000000000e+0   1.0000000000000000e+0   1.0000000000000000e+0   1.0000000000000000e+0   0.0000000000000000e+0
     10        [1]     0.0000000000000000e+0   1.0575640201568604e+0   1.0575640201568604e+0   1.0000000000000000e+0   0.0000000000000000e+0
     11        [2]     0.0000000000000000e+0   1.1149371862411499e+0   1.1149371862411499e+0   1.0000000000000000e+0   0.0000000000000000e+0
     12        [3]     0.0000000000000000e+0   1.1719291210174561e+0   1.1719291210174561e+0   1.0000000000000000e+0   0.0000000000000000e+0
     13        [4]     0.0000000000000000e+0   1.2283508777618408e+0   1.2283508777618408e+0   1.0000000000000000e+0   0.0000000000000000e+0
     14        ...and 123 more errors.
     15        Max AbsError of 1.9998764991760254e+0 at index of 27.
     16        [27]    0.0000000000000000e+0   1.9998764991760254e+0   1.9998764991760254e+0   1.0000000000000000e+0   0.0000000000000000e+0
     17        Max RelError of 1.0000000000000000e+0 at index of 0.
     18 assert_true: expected true got false
     19FAIL X ScriptProcessor output[1152:]: Expected 1 for all values but found 46848 unexpected values:
     20        Index   Actual
     21        [0]     0
     22        [1]     0
     23        [2]     0
     24        [3]     0
     25        ...and 46844 more errors. assert_true: expected true got false
     26FAIL < [test] 2 out of 3 assertions were failed. assert_true: expected true got false
     27FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
    828
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-expected.txt

    r262405 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4             .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] 
     6PASS   WaveShaperNode applied non-linear distortion correctly is true.
     7PASS < [test] All assertions passed. (total 1 assertions)
    78PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
    89
  • trunk/LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-waveshapernode-interface/waveshaper-limits-expected.txt

    r265062 r265086  
    11
    22PASS # AUDIT TASK RUNNER STARTED.
    3 FAIL Executing "test" promise_test: Unhandled rejection with value: object "TypeError: undefined is not an object (evaluating 'context.startRendering()
    4                 .then')"
     3PASS Executing "test"
    54PASS Audit report
    65PASS > [test] WaveShaperNode including values outside the range of [-1,1]
    7 PASS # AUDIT TASK RUNNER FINISHED: 1 tasks ran successfully.
     6FAIL X Max error mapping -1.100000 to -0.150000 is not less than or equal to 0.000001. Got 0.15000003576278687. assert_true: expected true got false
     7PASS   Max error mapping -1.000000 to 0.000000 is less than or equal to 0.000001.
     8FAIL X Max error mapping -0.900000 to 0.150000 is not less than or equal to 0.000001. Got 0.050000034272670746. assert_true: expected true got false
     9FAIL X Max error mapping -0.800000 to 0.300000 is not less than or equal to 0.000001. Got 0.09999997913837433. assert_true: expected true got false
     10FAIL X Max error mapping -0.700000 to 0.450000 is not less than or equal to 0.000001. Got 0.15000000596046448. assert_true: expected true got false
     11FAIL X Max error mapping -0.600000 to 0.600000 is not less than or equal to 0.000001. Got 0.19999995827674866. assert_true: expected true got false
     12FAIL X Max error mapping -0.500000 to 0.750000 is not less than or equal to 0.000001. Got 0.25. assert_true: expected true got false
     13FAIL X Max error mapping -0.400000 to 0.900000 is not less than or equal to 0.000001. Got 0.30000001192092896. assert_true: expected true got false
     14FAIL X Max error mapping -0.300000 to 0.950000 is not less than or equal to 0.000001. Got 0.2500000596046448. assert_true: expected true got false
     15PASS   Max error mapping -0.200000 to 0.800000 is less than or equal to 0.000001.
     16FAIL X Max error mapping -0.100000 to 0.650000 is not less than or equal to 0.000001. Got 0.24999994039535522. assert_true: expected true got false
     17FAIL X Max error mapping 0.000000 to 0.500000 is not less than or equal to 0.000001. Got 0.5. assert_true: expected true got false
     18FAIL X Max error mapping 0.100000 to 0.350000 is not less than or equal to 0.000001. Got 0.550000011920929. assert_true: expected true got false
     19FAIL X Max error mapping 0.200000 to 0.200000 is not less than or equal to 0.000001. Got 0.6000000834465027. assert_true: expected true got false
     20FAIL X Max error mapping 0.300000 to 0.050000 is not less than or equal to 0.000001. Got 0.6499999165534973. assert_true: expected true got false
     21FAIL X Max error mapping 0.400000 to 0.000000 is not less than or equal to 0.000001. Got 0.6000000238418579. assert_true: expected true got false
     22FAIL X Max error mapping 0.500000 to 0.000000 is not less than or equal to 0.000001. Got 0.5. assert_true: expected true got false
     23FAIL X Max error mapping 0.600000 to 0.000000 is not less than or equal to 0.000001. Got 0.4000000059604645. assert_true: expected true got false
     24FAIL X Max error mapping 0.700000 to 0.000000 is not less than or equal to 0.000001. Got 0.30000001192092896. assert_true: expected true got false
     25FAIL X Max error mapping 0.800000 to 0.000000 is not less than or equal to 0.000001. Got 0.20000000298023224. assert_true: expected true got false
     26FAIL X Max error mapping 0.900000 to 0.000000 is not less than or equal to 0.000001. Got 0.10000000149011612. assert_true: expected true got false
     27PASS   Max error mapping 1.000000 to 0.000000 is less than or equal to 0.000001.
     28PASS   Max error mapping 1.100000 to 0.000000 is less than or equal to 0.000001.
     29FAIL < [test] 19 out of 23 assertions were failed. assert_true: expected true got false
     30FAIL # AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed. assert_true: expected true got false
    831
  • trunk/Source/WebCore/ChangeLog

    r265084 r265086  
     12020-07-30  Chris Dumez  <cdumez@apple.com>
     2
     3        OfflineAudioContext.startRendering() should return a Promise
     4        https://bugs.webkit.org/show_bug.cgi?id=214940
     5
     6        Reviewed by Eric Carlson.
     7
     8        OfflineAudioContext.startRendering() should return a Promise:
     9        - https://www.w3.org/TR/webaudio/#dom-offlineaudiocontext-startrendering
     10
     11        This is important as it was preventing a lot of web-platform-tests from running
     12        properly and our test coverage was therefore really poor.
     13
     14        No new tests, rebaselined existing tests.
     15
     16        * Modules/webaudio/AudioBuffer.idl:
     17        * Modules/webaudio/AudioDestinationNode.h:
     18        * Modules/webaudio/BaseAudioContext.cpp:
     19        (WebCore::BaseAudioContext::finishedRendering):
     20        * Modules/webaudio/BaseAudioContext.h:
     21        (WebCore::BaseAudioContext::didFinishOfflineRendering):
     22        * Modules/webaudio/DefaultAudioDestinationNode.cpp:
     23        (WebCore::DefaultAudioDestinationNode::startRendering):
     24        * Modules/webaudio/DefaultAudioDestinationNode.h:
     25        * Modules/webaudio/OfflineAudioContext.cpp:
     26        (WebCore::OfflineAudioContext::startOfflineRendering):
     27        (WebCore::OfflineAudioContext::didFinishOfflineRendering):
     28        * Modules/webaudio/OfflineAudioContext.h:
     29        * Modules/webaudio/OfflineAudioContext.idl:
     30        * Modules/webaudio/OfflineAudioDestinationNode.cpp:
     31        (WebCore::OfflineAudioDestinationNode::startRendering):
     32        * Modules/webaudio/OfflineAudioDestinationNode.h:
     33
    1342020-07-30  Darin Adler  <darin@apple.com>
    235
  • trunk/Source/WebCore/Modules/webaudio/AudioBuffer.idl

    r265062 r265086  
    3030    Conditional=WEB_AUDIO,
    3131    ImplementationLacksVTable,
     32    JSGenerateToJSObject,
    3233    ReportExtraMemoryCost,
    3334] interface AudioBuffer {
  • trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.h

    r263985 r265086  
    2828#include "AudioIOCallback.h"
    2929#include "AudioNode.h"
     30#include "ExceptionOr.h"
    3031#include <wtf/Function.h>
    3132
     
    5455    virtual void enableInput(const String& inputDeviceId) = 0;
    5556
    56     virtual void startRendering() = 0;
     57    virtual ExceptionOr<void> startRendering() = 0;
    5758    virtual void resume(WTF::Function<void ()>&&) { }
    5859    virtual void suspend(WTF::Function<void ()>&&) { }
  • trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.cpp

    r265066 r265086  
    7272#include "WaveShaperNode.h"
    7373#include <JavaScriptCore/ScriptCallStack.h>
     74#include <wtf/Scope.h>
    7475
    7576#if DEBUG_AUDIONODE_REFERENCES
     
    10791080    ASSERT(isOfflineContext());
    10801081    ASSERT(isMainThread());
     1082    auto finishedRenderingScope = WTF::makeScopeExit([this] {
     1083        didFinishOfflineRendering(Exception { InvalidStateError });
     1084    });
     1085
    10811086    if (!isMainThread())
    10821087        return;
     
    10921097        return;
    10931098
    1094     AudioBuffer* renderedBuffer = m_renderTarget.get();
     1099    RefPtr<AudioBuffer> renderedBuffer = m_renderTarget.get();
    10951100    setState(State::Closed);
    10961101
     
    11041109
    11051110    clearPendingActivityIfExitEarly.release();
    1106     m_eventQueue->enqueueEvent(OfflineAudioCompletionEvent::create(renderedBuffer));
     1111    m_eventQueue->enqueueEvent(OfflineAudioCompletionEvent::create(renderedBuffer.get()));
     1112
     1113    finishedRenderingScope.release();
     1114    didFinishOfflineRendering(renderedBuffer.releaseNonNull());
    11071115}
    11081116
  • trunk/Source/WebCore/Modules/webaudio/BaseAudioContext.h

    r265052 r265086  
    305305    AudioDestinationNode* destinationNode() const { return m_destinationNode.get(); }
    306306
     307    bool willBeginPlayback();
     308
    307309    void uninitialize();
    308310
     
    314316    void setState(State);
    315317
     318    virtual void didFinishOfflineRendering(ExceptionOr<Ref<AudioBuffer>>&&) { }
     319
    316320private:
    317321    void constructCommon();
    318322
    319     bool willBeginPlayback();
    320323    bool willPausePlayback();
    321324
  • trunk/Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.cpp

    r264342 r265086  
    109109}
    110110
    111 void DefaultAudioDestinationNode::startRendering()
     111ExceptionOr<void> DefaultAudioDestinationNode::startRendering()
    112112{
    113113    ASSERT(isInitialized());
    114     if (isInitialized())
    115         m_destination->start();
     114    if (!isInitialized())
     115        return Exception { InvalidStateError };
     116
     117    m_destination->start();
     118    return { };
    116119}
    117120
  • trunk/Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.h

    r264342 r265086  
    5050
    5151    void enableInput(const String& inputDeviceId) final;
    52     void startRendering() final;
     52    ExceptionOr<void> startRendering() final;
    5353    void resume(Function<void ()>&&) final;
    5454    void suspend(Function<void ()>&&) final;
  • trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.cpp

    r264657 r265086  
    3131#include "AudioBuffer.h"
    3232#include "Document.h"
     33#include "JSAudioBuffer.h"
    3334#include <wtf/IsoMallocInlines.h>
    3435
     
    6364}
    6465
     66void OfflineAudioContext::startOfflineRendering(Ref<DeferredPromise>&& promise)
     67{
     68    if (isStopped() || !willBeginPlayback()) {
     69        promise->reject(Exception { InvalidStateError });
     70        return;
     71    }
     72
     73    auto result = destination()->startRendering();
     74    if (result.hasException()) {
     75        promise->reject(result.releaseException());
     76        return;
     77    }
     78
     79    makePendingActivity();
     80    m_pendingOfflineRenderingPromise = WTFMove(promise);
     81    setState(State::Running);
     82}
     83
     84void OfflineAudioContext::didFinishOfflineRendering(ExceptionOr<Ref<AudioBuffer>>&& result)
     85{
     86    if (!m_pendingOfflineRenderingPromise)
     87        return;
     88
     89    auto promise = std::exchange(m_pendingOfflineRenderingPromise, nullptr);
     90    if (result.hasException()) {
     91        promise->reject(result.releaseException());
     92        return;
     93    }
     94    promise->resolve<IDLInterface<AudioBuffer>>(result.releaseReturnValue());
     95}
    6596
    6697} // namespace WebCore
  • trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.h

    r264657 r265086  
    2626
    2727#include "BaseAudioContext.h"
     28#include "JSDOMPromiseDeferred.h"
    2829#include "OfflineAudioContextOptions.h"
    2930
     
    3738    static ExceptionOr<Ref<OfflineAudioContext>> create(ScriptExecutionContext&, const OfflineAudioContextOptions&);
    3839
     40    void startOfflineRendering(Ref<DeferredPromise>&&);
     41
    3942private:
    4043    OfflineAudioContext(Document&, AudioBuffer* renderTarget);
     44
     45    void didFinishOfflineRendering(ExceptionOr<Ref<AudioBuffer>>&&) final;
     46
     47    RefPtr<DeferredPromise> m_pendingOfflineRenderingPromise;
    4148};
    4249
  • trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl

    r264657 r265086  
    3131    [CallWith=ScriptExecutionContext, MayThrowException] constructor(unsigned long numberOfChannels, unsigned long length, float sampleRate);
    3232   
    33     void startRendering();
     33    [ImplementedAs=startOfflineRendering] Promise<AudioBuffer> startRendering();
    3434
    3535    [ImplementedAs=resumeRendering] Promise<void> resume();
  • trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp

    r263410 r265086  
    7676}
    7777
    78 void OfflineAudioDestinationNode::startRendering()
     78ExceptionOr<void> OfflineAudioDestinationNode::startRendering()
    7979{
    8080    ALWAYS_LOG(LOGIDENTIFIER);
     
    8383    ASSERT(m_renderTarget.get());
    8484    if (!m_renderTarget.get())
    85         return;
     85        return Exception { InvalidStateError };
    8686   
    8787    if (m_startedRendering)
    88         return;
     88        return Exception { InvalidStateError, "Already started rendering"_s };
    8989
    9090    m_startedRendering = true;
     
    9999        });
    100100    }, ThreadType::Audio);
     101    return { };
    101102}
    102103
  • trunk/Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.h

    r263410 r265086  
    5151    // AudioDestinationNode
    5252    void enableInput(const String&) override { }
    53     void startRendering() override;
     53    ExceptionOr<void> startRendering() override;
    5454
    5555    float sampleRate() const override { return m_renderTarget->sampleRate(); }
Note: See TracChangeset for help on using the changeset viewer.