Skip to content

Commit d10ba36

Browse files
committed
Add TestPeerConnection_GracefulCloseWhileOpening
1 parent 48a2e5a commit d10ba36

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

peerconnection_close_test.go

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,3 +245,45 @@ func TestPeerConnection_CloseWithIncomingMessages(t *testing.T) {
245245
t.Fatal(err)
246246
}
247247
}
248+
249+
func TestPeerConnection_GracefulCloseWhileOpening(t *testing.T) {
250+
// Limit runtime in case of deadlocks
251+
lim := test.TimeOut(time.Second * 5)
252+
defer lim.Stop()
253+
254+
report := test.CheckRoutinesStrict(t)
255+
defer report()
256+
257+
pcOffer, pcAnswer, err := newPair()
258+
if err != nil {
259+
t.Fatal(err)
260+
}
261+
262+
if _, err := pcOffer.CreateDataChannel("initial_data_channel", nil); err != nil {
263+
t.Fatal(err)
264+
}
265+
266+
offer, err := pcOffer.CreateOffer(nil)
267+
if err != nil {
268+
t.Fatal(err)
269+
}
270+
offerGatheringComplete := GatheringCompletePromise(pcOffer)
271+
if err = pcOffer.SetLocalDescription(offer); err != nil {
272+
t.Fatal(err)
273+
}
274+
<-offerGatheringComplete
275+
276+
err = pcOffer.GracefulClose()
277+
if err != nil {
278+
t.Fatal(err)
279+
}
280+
281+
if err = pcAnswer.SetRemoteDescription(offer); err != nil {
282+
t.Fatal(err)
283+
}
284+
285+
err = pcAnswer.GracefulClose()
286+
if err != nil {
287+
t.Fatal(err)
288+
}
289+
}

0 commit comments

Comments
 (0)