<!doctype html>
<meta charset=utf-8>
<meta name="timeout" content="long">
<title></title>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
'use strict';

promise_test(async t => {
  const pc = new RTCPeerConnection();
  t.add_cleanup(() => pc.close());
  const signalingStates = [];
  pc.onsignalingstatechange = ev => signalingStates.push(pc.signalingState);
  pc.addTransceiver('audio', {direction:'recvonly'});
  const offer = await pc.createOffer();
  const sldPromise = pc.setLocalDescription(offer);
  const srdPromise = pc.setRemoteDescription(offer);
  await Promise.all([sldPromise, srdPromise]);
  assert_array_equals(signalingStates,
                      ['have-local-offer','stable','have-remote-offer']);
}, 'setLocalDescription and setRemoteDescription are not racy');

</script>
