func TestReceiverWithConfig()

in plugins/receiver/grpc/common_test_help.go [49:89]


func TestReceiverWithConfig(rec receiver.Receiver, recConf map[string]string,
	dataGenerator func(t *testing.T, sequence int, conn *grpc.ClientConn, ctx context.Context) string,
	snifferConvertor func(data *v1.SniffData) string, t *testing.T) {
	Init(rec)
	grpcPort := randomGrpcPort()
	receiverConfig := make(plugin.Config)
	for k, v := range recConf {
		receiverConfig[k] = v
	}
	r := initReceiver(receiverConfig, t, rec)
	s := initServer(make(plugin.Config), grpcPort, t)
	r.RegisterHandler(s.GetServer())
	_ = s.Start()
	time.Sleep(time.Second)
	defer func() {
		if err := s.Close(); err != nil {
			t.Fatalf("cannot close the sever: %v", err)
		}
	}()
	conn := initConnection(grpcPort, t)
	for i := 0; i < 10; i++ {
		ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
		var data string
		errorMsg := ""
		go func() {
			newData := <-r.Channel()
			// await data content
			time.Sleep(time.Millisecond * 100)
			if !cmp.Equal(snifferConvertor(newData), data) {
				errorMsg = fmt.Sprintf("the sent data is not equal to the received data\n, "+
					"want data %s\n, but got %s\n", data, newData.String())
			}
			cancel()
		}()
		data = dataGenerator(t, i, conn, ctx)
		<-ctx.Done()
		if errorMsg != "" {
			t.Fatalf(errorMsg)
		}
	}
}