ceremonyclient/go-libp2p/p2p/transport/webrtc/sdp_test.go

102 lines
2.6 KiB
Go
Raw Normal View History

2024-06-08 11:32:45 +00:00
package libp2pwebrtc
import (
"encoding/hex"
"net"
"testing"
"github.com/multiformats/go-multihash"
"github.com/stretchr/testify/require"
)
const expectedServerSDP = `v=0
o=- 0 0 IN IP4 0.0.0.0
s=-
t=0 0
a=ice-lite
m=application 37826 UDP/DTLS/SCTP webrtc-datachannel
c=IN IP4 0.0.0.0
a=mid:0
a=ice-options:ice2
a=ice-ufrag:d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581
a=ice-pwd:d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581
a=fingerprint:sha-256 ba:78:16:bf:8f:01:cf:ea:41:41:40:de:5d:ae:22:23:b0:03:61:a3:96:17:7a:9c:b4:10:ff:61:f2:00:15:ad
a=setup:passive
a=sctp-port:5000
a=max-message-size:16384
a=candidate:1 1 UDP 1 0.0.0.0 37826 typ host
a=end-of-candidates
`
func TestRenderServerSDP(t *testing.T) {
encoded, err := hex.DecodeString("ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad")
require.NoError(t, err)
testMultihash := multihash.DecodedMultihash{
Code: multihash.SHA2_256,
Name: multihash.Codes[multihash.SHA2_256],
Digest: encoded,
Length: len(encoded),
}
addr := &net.UDPAddr{IP: net.IPv4(0, 0, 0, 0), Port: 37826}
ufrag := "d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581"
fingerprint := testMultihash
sdp, err := createServerSDP(addr, ufrag, fingerprint)
require.NoError(t, err)
require.Equal(t, expectedServerSDP, sdp)
}
const expectedClientSDP = `v=0
o=- 0 0 IN IP4 0.0.0.0
s=-
c=IN IP4 0.0.0.0
t=0 0
m=application 37826 UDP/DTLS/SCTP webrtc-datachannel
a=mid:0
a=ice-options:ice2
a=ice-ufrag:d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581
a=ice-pwd:d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581
a=fingerprint:sha-256 ba:78:16:bf:8f:01:cf:ea:41:41:40:de:5d:ae:22:23:b0:03:61:a3:96:17:7a:9c:b4:10:ff:61:f2:00:15:ad
a=setup:actpass
a=sctp-port:5000
a=max-message-size:16384
`
func TestRenderClientSDP(t *testing.T) {
addr := &net.UDPAddr{IP: net.IPv4(0, 0, 0, 0), Port: 37826}
ufrag := "d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581"
sdp := createClientSDP(addr, ufrag)
require.Equal(t, expectedClientSDP, sdp)
}
func BenchmarkRenderClientSDP(b *testing.B) {
addr := &net.UDPAddr{IP: net.IPv4(0, 0, 0, 0), Port: 37826}
ufrag := "d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581"
for i := 0; i < b.N; i++ {
createClientSDP(addr, ufrag)
}
}
func BenchmarkRenderServerSDP(b *testing.B) {
encoded, _ := hex.DecodeString("ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad")
testMultihash := multihash.DecodedMultihash{
Code: multihash.SHA2_256,
Name: multihash.Codes[multihash.SHA2_256],
Digest: encoded,
Length: len(encoded),
}
addr := &net.UDPAddr{IP: net.IPv4(0, 0, 0, 0), Port: 37826}
ufrag := "d2c0fc07-8bb3-42ae-bae2-a6fce8a0b581"
fingerprint := testMultihash
for i := 0; i < b.N; i++ {
createServerSDP(addr, ufrag, fingerprint)
}
}