mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
When an agent receives a node, it responds with an ACK which is relayed to the client. After the client receives the ACK, it's allowed to begin pinging.
61 lines
1.8 KiB
Go
61 lines
1.8 KiB
Go
package tailnet
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestTunnelStore_Bidir(t *testing.T) {
|
|
t.Parallel()
|
|
p1 := uuid.MustParse("00000001-1111-1111-1111-111111111111")
|
|
p2 := uuid.MustParse("00000002-1111-1111-1111-111111111111")
|
|
uut := newTunnelStore()
|
|
uut.add(p1, p2)
|
|
require.Equal(t, []uuid.UUID{p1}, uut.findTunnelPeers(p2))
|
|
require.Equal(t, []uuid.UUID{p2}, uut.findTunnelPeers(p1))
|
|
uut.remove(p1, p2)
|
|
require.Empty(t, uut.findTunnelPeers(p1))
|
|
require.Empty(t, uut.findTunnelPeers(p2))
|
|
require.Len(t, uut.byDst, 0)
|
|
require.Len(t, uut.bySrc, 0)
|
|
}
|
|
|
|
func TestTunnelStore_RemoveAll(t *testing.T) {
|
|
t.Parallel()
|
|
p1 := uuid.MustParse("00000001-1111-1111-1111-111111111111")
|
|
p2 := uuid.MustParse("00000002-1111-1111-1111-111111111111")
|
|
p3 := uuid.MustParse("00000003-1111-1111-1111-111111111111")
|
|
uut := newTunnelStore()
|
|
uut.add(p1, p2)
|
|
uut.add(p1, p3)
|
|
uut.add(p3, p1)
|
|
require.Len(t, uut.findTunnelPeers(p1), 2)
|
|
require.Len(t, uut.findTunnelPeers(p2), 1)
|
|
require.Len(t, uut.findTunnelPeers(p3), 1)
|
|
uut.removeAll(p1)
|
|
require.Len(t, uut.findTunnelPeers(p1), 1)
|
|
require.Len(t, uut.findTunnelPeers(p2), 0)
|
|
require.Len(t, uut.findTunnelPeers(p3), 1)
|
|
uut.removeAll(p3)
|
|
require.Len(t, uut.findTunnelPeers(p1), 0)
|
|
require.Len(t, uut.findTunnelPeers(p2), 0)
|
|
require.Len(t, uut.findTunnelPeers(p3), 0)
|
|
}
|
|
|
|
func TestTunnelStore_TunnelExists(t *testing.T) {
|
|
t.Parallel()
|
|
p1 := uuid.UUID{1}
|
|
p2 := uuid.UUID{2}
|
|
uut := newTunnelStore()
|
|
require.False(t, uut.tunnelExists(p1, p2))
|
|
require.False(t, uut.tunnelExists(p2, p1))
|
|
uut.add(p1, p2)
|
|
require.True(t, uut.tunnelExists(p1, p2))
|
|
require.True(t, uut.tunnelExists(p2, p1))
|
|
uut.remove(p1, p2)
|
|
require.False(t, uut.tunnelExists(p1, p2))
|
|
require.False(t, uut.tunnelExists(p2, p1))
|
|
}
|