<!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>