Skip to content

Commit 5cd2335

Browse files
committed
Add basic embedding test
1 parent a8e64fe commit 5cd2335

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

agent_test.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2891,3 +2891,60 @@ func TestMDNSLocalAddressFromTCPMux(t *testing.T) {
28912891
require.Nil(t, mDNSLocalAddressFromTCPMux(&stubTCPMux{}, []NetworkType{NetworkTypeTCP4}))
28922892
})
28932893
}
2894+
2895+
func TestSped(t *testing.T) {
2896+
defer test.CheckRoutines(t)()
2897+
2898+
t.Run("Basic embedding", func(t *testing.T) {
2899+
aNotifier, aConnected := onConnected()
2900+
aAgent, err := NewAgent(&AgentConfig{
2901+
NetworkTypes: supportedNetworkTypes(),
2902+
})
2903+
require.NoError(t, err)
2904+
require.NoError(t, aAgent.OnConnectionStateChange(aNotifier))
2905+
2906+
var toA string
2907+
fromA := "Hello from A"
2908+
aAgent.SetDtlsCallback(func(packet []byte, rAddr net.Addr) {
2909+
toA = string(packet)
2910+
})
2911+
require.True(t, aAgent.Piggyback([]byte(fromA), true))
2912+
2913+
bNotifier, bConnected := onConnected()
2914+
bAgent, err := NewAgent(&AgentConfig{
2915+
NetworkTypes: supportedNetworkTypes(),
2916+
})
2917+
require.NoError(t, err)
2918+
require.NoError(t, bAgent.OnConnectionStateChange(bNotifier))
2919+
2920+
var toB string
2921+
fromB := "Hello from B"
2922+
bAgent.SetDtlsCallback(func(packet []byte, rAddr net.Addr) {
2923+
toB = string(packet)
2924+
})
2925+
require.True(t, bAgent.Piggyback([]byte(fromB), true))
2926+
2927+
gatherAndExchangeCandidates(t, aAgent, bAgent)
2928+
go func() {
2929+
bUfrag, bPwd, err := bAgent.GetLocalUserCredentials()
2930+
require.NoError(t, err)
2931+
_, err = aAgent.Accept(context.TODO(), bUfrag, bPwd)
2932+
require.NoError(t, err)
2933+
}()
2934+
2935+
go func() {
2936+
aUfrag, aPwd, err := aAgent.GetLocalUserCredentials()
2937+
require.NoError(t, err)
2938+
_, err = bAgent.Dial(context.TODO(), aUfrag, aPwd)
2939+
require.NoError(t, err)
2940+
}()
2941+
2942+
<-aConnected
2943+
<-bConnected
2944+
require.NoError(t, aAgent.Close())
2945+
require.NoError(t, bAgent.Close())
2946+
2947+
require.Equal(t, toA, fromB)
2948+
require.Equal(t, toB, fromA)
2949+
})
2950+
}

0 commit comments

Comments
 (0)