func createEventHubServer() (net.Listener, *grpc.Server, error) { var lis net.Listener var grpcServer *grpc.Server var err error if peer.ValidatorEnabled() { lis, err = net.Listen("tcp", viper.GetString("peer.validator.events.address")) if err != nil { return nil, nil, fmt.Errorf("failed to listen: %v", err) } //TODO - do we need different SSL material for events ? var opts []grpc.ServerOption if comm.TLSEnabled() { creds, err := credentials.NewServerTLSFromFile( viper.GetString("peer.tls.cert.file"), viper.GetString("peer.tls.key.file")) if err != nil { return nil, nil, fmt.Errorf("Failed to generate credentials %v", err) } opts = []grpc.ServerOption{grpc.Creds(creds)} } grpcServer = grpc.NewServer(opts...) ehServer := producer.NewEventsServer( uint(viper.GetInt("peer.validator.events.buffersize")), viper.GetInt("peer.validator.events.timeout")) pb.RegisterEventsServer(grpcServer, ehServer) } return lis, grpcServer, err }
func TestMain(m *testing.M) { SetupTestConfig() var opts []grpc.ServerOption if viper.GetBool("peer.tls.enabled") { creds, err := credentials.NewServerTLSFromFile(viper.GetString("peer.tls.cert.file"), viper.GetString("peer.tls.key.file")) if err != nil { grpclog.Fatalf("Failed to generate credentials %v", err) } opts = []grpc.ServerOption{grpc.Creds(creds)} } grpcServer := grpc.NewServer(opts...) //use a different address than what we usually use for "peer" //we override the peerAddress set in chaincode_support.go peerAddress = "0.0.0.0:60303" lis, err := net.Listen("tcp", peerAddress) if err != nil { fmt.Printf("Error starting events listener %s....not doing tests", err) return } // Register EventHub server // use a buffer of 100 and blocking timeout ehServer := producer.NewEventsServer(100, 0) ehpb.RegisterEventsServer(grpcServer, ehServer) fmt.Printf("Starting events server\n") go grpcServer.Serve(lis) var regTimeout = 5 * time.Second done := make(chan struct{}) adapter = &Adapter{notfy: done} obcEHClient, _ = consumer.NewEventsClient(peerAddress, regTimeout, adapter) if err = obcEHClient.Start(); err != nil { fmt.Printf("could not start chat %s\n", err) obcEHClient.Stop() return } time.Sleep(2 * time.Second) os.Exit(m.Run()) }