MCPcopy
hub / github.com/pion/webrtc / TestSettingEngine_SetDisableMediaEngineCopy

Function TestSettingEngine_SetDisableMediaEngineCopy

settingengine_test.go:275–346  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

273}
274
275func TestSettingEngine_SetDisableMediaEngineCopy(t *testing.T) {
276 t.Run("Copy", func(t *testing.T) {
277 mediaEngine := &MediaEngine{}
278 assert.NoError(t, mediaEngine.RegisterDefaultCodecs())
279
280 api := NewAPI(WithMediaEngine(mediaEngine))
281
282 offerer, answerer, err := api.newPair(Configuration{})
283 assert.NoError(t, err)
284
285 _, err = offerer.AddTransceiverFromKind(RTPCodecTypeVideo)
286 assert.NoError(t, err)
287
288 assert.NoError(t, signalPair(offerer, answerer))
289
290 // Assert that the MediaEngine the user created isn't modified
291 assert.False(t, mediaEngine.negotiatedVideo)
292 assert.Empty(t, mediaEngine.negotiatedVideoCodecs)
293
294 // Assert that the internal MediaEngine is modified
295 assert.True(t, offerer.api.mediaEngine.negotiatedVideo)
296 assert.NotEmpty(t, offerer.api.mediaEngine.negotiatedVideoCodecs)
297
298 closePairNow(t, offerer, answerer)
299
300 newOfferer, newAnswerer, err := api.newPair(Configuration{})
301 assert.NoError(t, err)
302
303 // Assert that the first internal MediaEngine hasn't been cleared
304 assert.True(t, offerer.api.mediaEngine.negotiatedVideo)
305 assert.NotEmpty(t, offerer.api.mediaEngine.negotiatedVideoCodecs)
306
307 // Assert that the new internal MediaEngine isn't modified
308 assert.False(t, newOfferer.api.mediaEngine.negotiatedVideo)
309 assert.Empty(t, newAnswerer.api.mediaEngine.negotiatedVideoCodecs)
310
311 closePairNow(t, newOfferer, newAnswerer)
312 })
313
314 t.Run("No Copy", func(t *testing.T) {
315 mediaEngine := &MediaEngine{}
316 assert.NoError(t, mediaEngine.RegisterDefaultCodecs())
317
318 s := SettingEngine{}
319 s.DisableMediaEngineCopy(true)
320
321 api := NewAPI(WithMediaEngine(mediaEngine), WithSettingEngine(s))
322
323 offerer, answerer, err := api.newPair(Configuration{})
324 assert.NoError(t, err)
325
326 _, err = offerer.AddTransceiverFromKind(RTPCodecTypeVideo)
327 assert.NoError(t, err)
328
329 assert.NoError(t, signalPair(offerer, answerer))
330
331 // Assert that the user MediaEngine was modified, so no copy happened
332 assert.True(t, mediaEngine.negotiatedVideo)

Callers

nothing calls this directly

Calls 9

RegisterDefaultCodecsMethod · 0.95
newPairMethod · 0.95
WithMediaEngineFunction · 0.85
signalPairFunction · 0.85
closePairNowFunction · 0.85
NewAPIFunction · 0.70
WithSettingEngineFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…