code: func (m *MockBroadcastServer) Start(address string) string {
  	if m.srv != nil {
  		panic("MockBroadcastServer already started")
  	}
  
  	// pass in TLS creds if present
  	if m.Creds != nil {
  		m.srv = grpc.NewServer(grpc.Creds(m.Creds))
  	} else {
  		m.srv = grpc.NewServer()
  	}
  
  	lis, err := net.Listen("tcp", address)
  	if err != nil {
  		panic(fmt.Sprintf("Error starting BroadcastServer %s", err))
  	}
  	addr := lis.Addr().String()
  
  	test.Logf("Starting MockEventServer [%s]", addr)
  	po.RegisterAtomicBroadcastServer(m.srv, m)
  	m.wg.Add(1)
  	go func() {
  		defer m.wg.Done()
  		if err := m.srv.Serve(lis); err != nil {
  			test.Logf("StartMockBroadcastServer failed [%s]", err)
  		}
  	}()
  
  	return addr
  }
docs: // Start the mock broadcast server