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)
}
}
}