vnet_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // SPDX-FileCopyrightText: 2023 The Pion community <https://pion.ly>
  2. // SPDX-License-Identifier: MIT
  3. //go:build !js
  4. // +build !js
  5. package webrtc
  6. import (
  7. "testing"
  8. "time"
  9. "github.com/pion/logging"
  10. "github.com/pion/transport/v2/vnet"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func createVNetPair(t *testing.T) (*PeerConnection, *PeerConnection, *vnet.Router) {
  14. // Create a root router
  15. wan, err := vnet.NewRouter(&vnet.RouterConfig{
  16. CIDR: "1.2.3.0/24",
  17. LoggerFactory: logging.NewDefaultLoggerFactory(),
  18. })
  19. assert.NoError(t, err)
  20. // Create a network interface for offerer
  21. offerVNet, err := vnet.NewNet(&vnet.NetConfig{
  22. StaticIPs: []string{"1.2.3.4"},
  23. })
  24. assert.NoError(t, err)
  25. // Add the network interface to the router
  26. assert.NoError(t, wan.AddNet(offerVNet))
  27. offerSettingEngine := SettingEngine{}
  28. offerSettingEngine.SetVNet(offerVNet)
  29. offerSettingEngine.SetICETimeouts(time.Second, time.Second, time.Millisecond*200)
  30. // Create a network interface for answerer
  31. answerVNet, err := vnet.NewNet(&vnet.NetConfig{
  32. StaticIPs: []string{"1.2.3.5"},
  33. })
  34. assert.NoError(t, err)
  35. // Add the network interface to the router
  36. assert.NoError(t, wan.AddNet(answerVNet))
  37. answerSettingEngine := SettingEngine{}
  38. answerSettingEngine.SetVNet(answerVNet)
  39. answerSettingEngine.SetICETimeouts(time.Second, time.Second, time.Millisecond*200)
  40. // Start the virtual network by calling Start() on the root router
  41. assert.NoError(t, wan.Start())
  42. offerMediaEngine := &MediaEngine{}
  43. assert.NoError(t, offerMediaEngine.RegisterDefaultCodecs())
  44. offerPeerConnection, err := NewAPI(WithSettingEngine(offerSettingEngine), WithMediaEngine(offerMediaEngine)).NewPeerConnection(Configuration{})
  45. assert.NoError(t, err)
  46. answerMediaEngine := &MediaEngine{}
  47. assert.NoError(t, answerMediaEngine.RegisterDefaultCodecs())
  48. answerPeerConnection, err := NewAPI(WithSettingEngine(answerSettingEngine), WithMediaEngine(answerMediaEngine)).NewPeerConnection(Configuration{})
  49. assert.NoError(t, err)
  50. return offerPeerConnection, answerPeerConnection, wan
  51. }