in plugins/receiver/grpc/common_test_help.go [53:93]
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(TestWrongReceiveData, data, newData.String())
}
cancel()
}()
data = dataGenerator(t, i, conn, ctx)
<-ctx.Done()
if errorMsg != "" {
t.Fatalf("%s", errorMsg)
}
}
}