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

Function handleTestSubprocess

tailnet/test/integration/integration_test.go:235–315  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

233}
234
235func handleTestSubprocess(t *testing.T) {
236 // Find the specific topology.
237 var topo integration.TestTopology
238 for _, t := range topologies {
239 if t.Name == *testID {
240 topo = t
241 break
242 }
243 }
244 require.NotEmptyf(t, topo.Name, "unknown test topology %q", *testID)
245 require.Contains(t, []string{"server", "stun", "client"}, *role, "unknown role %q", *role)
246
247 testName := topo.Name + "/"
248 switch *role {
249 case "server":
250 testName += "server"
251 case "stun":
252 testName += fmt.Sprintf("stun%d", *stunNumber)
253 case "client":
254 testName += *clientName
255 default:
256 t.Fatalf("unknown role %q", *role)
257 }
258
259 t.Run(testName, func(t *testing.T) {
260 logger := testutil.Logger(t)
261 switch *role {
262 case "server":
263 logger = logger.Named("server")
264 topo.Server.StartServer(t, logger, *serverListenAddr)
265 // no exit
266
267 case "stun":
268 launchSTUNServer(t, *stunListenAddr)
269 // no exit
270
271 case "client":
272 logger = logger.Named(*clientName)
273 if *clientNumber != int(integration.ClientNumber1) && *clientNumber != int(integration.ClientNumber2) {
274 t.Fatalf("invalid client number %d", clientNumber)
275 }
276 me, peer := integration.Client1, integration.Client2
277 if *clientNumber == int(integration.ClientNumber2) {
278 me, peer = peer, me
279 }
280
281 serverURL, err := url.Parse(*clientServerURL)
282 require.NoErrorf(t, err, "parse server url %q", *clientServerURL)
283
284 // Load the DERP map.
285 var derpMap tailcfg.DERPMap
286 derpMapPath := *clientDERPMapPath
287 f, err := os.Open(derpMapPath)
288 require.NoErrorf(t, err, "open DERP map %q", derpMapPath)
289 err = json.NewDecoder(f).Decode(&derpMap)
290 _ = f.Close()
291 require.NoErrorf(t, err, "decode DERP map %q", derpMapPath)
292

Callers 1

TestIntegrationFunction · 0.85

Calls 15

LoggerFunction · 0.92
ContextFunction · 0.92
launchSTUNServerFunction · 0.85
waitForServerAvailableFunction · 0.85
NamedMethod · 0.80
AddrFromUUIDMethod · 0.80
RunMethod · 0.65
StartServerMethod · 0.65
ParseMethod · 0.65
CloseMethod · 0.65
StartClientMethod · 0.65
AwaitReachableMethod · 0.65

Tested by

no test coverage detected