MCPcopy
hub / github.com/netbirdio/netbird / TestClient

Function TestClient

shared/relay/client/client_test.go:41–123  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

39}
40
41func TestClient(t *testing.T) {
42 ctx := context.Background()
43 serverListenAddr := "127.0.0.1:50001"
44 serverCfg := newClientTestServerConfig(serverListenAddr)
45
46 srv, err := server.NewServer(serverCfg)
47 if err != nil {
48 t.Fatalf("failed to create server: %s", err)
49 }
50 errChan := make(chan error, 1)
51 go func() {
52 listenCfg := server.ListenerConfig{Address: serverListenAddr}
53 err := srv.Listen(listenCfg)
54 if err != nil {
55 errChan <- err
56 }
57 }()
58
59 defer func() {
60 err := srv.Shutdown(ctx)
61 if err != nil {
62 t.Errorf("failed to close server: %s", err)
63 }
64 }()
65
66 // wait for server to start
67 if err := waitForServerToStart(errChan); err != nil {
68 t.Fatalf("failed to start server: %s", err)
69 }
70 t.Log("alice connecting to server")
71 clientAlice := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "alice", iface.DefaultMTU)
72 err = clientAlice.Connect(ctx)
73 if err != nil {
74 t.Fatalf("failed to connect to server: %s", err)
75 }
76 defer clientAlice.Close()
77
78 t.Log("placeholder connecting to server")
79 clientPlaceHolder := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "clientPlaceHolder", iface.DefaultMTU)
80 err = clientPlaceHolder.Connect(ctx)
81 if err != nil {
82 t.Fatalf("failed to connect to server: %s", err)
83 }
84 defer clientPlaceHolder.Close()
85
86 t.Log("Bob connecting to server")
87 clientBob := NewClient(serverCfg.ExposedAddress, hmacTokenStore, "bob", iface.DefaultMTU)
88 err = clientBob.Connect(ctx)
89 if err != nil {
90 t.Fatalf("failed to connect to server: %s", err)
91 }
92 defer clientBob.Close()
93
94 t.Log("Alice open connection to Bob")
95 connAliceToBob, err := clientAlice.OpenConn(ctx, "bob")
96 if err != nil {
97 t.Fatalf("failed to bind channel: %s", err)
98 }

Callers

nothing calls this directly

Calls 14

ListenMethod · 0.95
ShutdownMethod · 0.95
ConnectMethod · 0.95
CloseMethod · 0.95
OpenConnMethod · 0.95
NewServerFunction · 0.92
FatalfMethod · 0.80
ErrorfMethod · 0.80
waitForServerToStartFunction · 0.70
NewClientFunction · 0.70
WriteMethod · 0.65

Tested by

no test coverage detected