: ${err.message}`)));
  }, 'iceGatheringState should eventually become complete after setLocalDescription');

  promise_test(async t => {
    const pc1 = new RTCPeerConnection();
    t.add_cleanup(() => pc1.close());
    const pc2 = new RTCPeerConnection();
    t.add_cleanup(() => pc2.close());
    pc1.addTransceiver('audio', { direction: 'recvonly' });
    await initialOfferAnswerWithIceGatheringStateTransitions(
        pc1, pc2);

    expectNoMoreGatheringStateChanges(t, pc1);
    expectNoMoreGatheringSt