MCPcopy Index your code
hub / github.com/coder/coder / TestDERP

Function TestDERP

coderd/coderd_test.go:58–145  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

56}
57
58func TestDERP(t *testing.T) {
59 t.Parallel()
60 ctx := testutil.Context(t, testutil.WaitMedium)
61 client := coderdtest.New(t, nil)
62
63 logger := testutil.Logger(t)
64
65 derpPort, err := strconv.Atoi(client.URL.Port())
66 require.NoError(t, err)
67 derpMap := &tailcfg.DERPMap{
68 Regions: map[int]*tailcfg.DERPRegion{
69 1: {
70 RegionID: 1,
71 RegionCode: "cdr",
72 RegionName: "Coder",
73 Nodes: []*tailcfg.DERPNode{{
74 Name: "1a",
75 RegionID: 1,
76 HostName: client.URL.Hostname(),
77 DERPPort: derpPort,
78 STUNPort: -1,
79 ForceHTTP: true,
80 }},
81 },
82 },
83 }
84 w1IP := tailnet.TailscaleServicePrefix.RandomAddr()
85 w1, err := tailnet.NewConn(&tailnet.Options{
86 Addresses: []netip.Prefix{netip.PrefixFrom(w1IP, 128)},
87 Logger: logger.Named("w1"),
88 DERPMap: derpMap,
89 })
90 require.NoError(t, err)
91
92 w2, err := tailnet.NewConn(&tailnet.Options{
93 Addresses: []netip.Prefix{tailnet.TailscaleServicePrefix.RandomPrefix()},
94 Logger: logger.Named("w2"),
95 DERPMap: derpMap,
96 })
97 require.NoError(t, err)
98
99 w1ID := uuid.New()
100 w1.SetNodeCallback(func(node *tailnet.Node) {
101 pn, err := tailnet.NodeToProto(node)
102 if !assert.NoError(t, err) {
103 return
104 }
105 w2.UpdatePeers([]*tailnetproto.CoordinateResponse_PeerUpdate{{
106 Id: w1ID[:],
107 Node: pn,
108 Kind: tailnetproto.CoordinateResponse_PeerUpdate_NODE,
109 }})
110 })
111 w2ID := uuid.New()
112 w2.SetNodeCallback(func(node *tailnet.Node) {
113 pn, err := tailnet.NodeToProto(node)
114 if !assert.NoError(t, err) {
115 return

Callers

nothing calls this directly

Calls 15

SetNodeCallbackMethod · 0.95
UpdatePeersMethod · 0.95
ListenMethod · 0.95
AwaitReachableMethod · 0.95
DialContextTCPMethod · 0.95
CloseMethod · 0.95
ContextFunction · 0.92
NewFunction · 0.92
LoggerFunction · 0.92
NewConnFunction · 0.92
NodeToProtoFunction · 0.92
RandomAddrMethod · 0.80

Tested by

no test coverage detected