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

Function TestNotifierDoubleAdd

shared/relay/client/manager_test.go:416–481  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

414}
415
416func TestNotifierDoubleAdd(t *testing.T) {
417 ctx := context.Background()
418
419 listenerCfg1 := server.ListenerConfig{
420 Address: "localhost:52501",
421 }
422 srv, err := server.NewServer(newManagerTestServerConfig(listenerCfg1.Address))
423 if err != nil {
424 t.Fatalf("failed to create server: %s", err)
425 }
426 errChan := make(chan error, 1)
427 go func() {
428 if err := srv.Listen(listenerCfg1); err != nil {
429 errChan <- err
430 }
431 }()
432
433 defer func() {
434 if err := srv.Shutdown(ctx); err != nil {
435 t.Errorf("failed to close server: %s", err)
436 }
437 }()
438
439 if err := waitForServerToStart(errChan); err != nil {
440 t.Fatalf("failed to start server: %s", err)
441 }
442
443 log.Debugf("connect by alice")
444 mCtx, cancel := context.WithCancel(ctx)
445 defer cancel()
446
447 clientBob := NewManager(mCtx, toURL(listenerCfg1), "bob", iface.DefaultMTU)
448 if err = clientBob.Serve(); err != nil {
449 t.Fatalf("failed to serve manager: %s", err)
450 }
451
452 clientAlice := NewManager(mCtx, toURL(listenerCfg1), "alice", iface.DefaultMTU)
453 if err = clientAlice.Serve(); err != nil {
454 t.Fatalf("failed to serve manager: %s", err)
455 }
456
457 conn1, err := clientAlice.OpenConn(ctx, clientAlice.ServerURLs()[0], "bob", netip.Addr{})
458 if err != nil {
459 t.Fatalf("failed to bind channel: %s", err)
460 }
461
462 fnCloseListener := OnServerCloseListener(func() {
463 log.Infof("close listener")
464 })
465
466 err = clientAlice.AddCloseListener(clientAlice.ServerURLs()[0], fnCloseListener)
467 if err != nil {
468 t.Fatalf("failed to add close listener: %s", err)
469 }
470
471 err = clientAlice.AddCloseListener(clientAlice.ServerURLs()[0], fnCloseListener)
472 if err != nil {
473 t.Fatalf("failed to add close listener: %s", err)

Callers

nothing calls this directly

Calls 15

ListenMethod · 0.95
ShutdownMethod · 0.95
ServeMethod · 0.95
OpenConnMethod · 0.95
ServerURLsMethod · 0.95
AddCloseListenerMethod · 0.95
NewServerFunction · 0.92
toURLFunction · 0.85
OnServerCloseListenerFuncType · 0.85
FatalfMethod · 0.80
ErrorfMethod · 0.80

Tested by

no test coverage detected