(t *testing.T)
| 25 | ) |
| 26 | |
| 27 | func TestGrpcLimitCheckMalformedMethodName(t *testing.T) { |
| 28 | const badMethodName = "bad_method_name" |
| 29 | |
| 30 | ts := &testServer{finishRequest: make(chan struct{})} |
| 31 | ml := &methodLimiter{protectedMethod: badMethodName} |
| 32 | |
| 33 | limitCheck := newGrpcInflightLimitCheck(ml, log.NewNopLogger()) |
| 34 | |
| 35 | c := setupGrpcServerWithCheckAndClient(t, ts, limitCheck) |
| 36 | |
| 37 | out := &emptypb.Empty{} |
| 38 | err := c.(*fakeServerClient).cc.Invoke(context.Background(), badMethodName, &emptypb.Empty{}, out) |
| 39 | |
| 40 | require.Error(t, err) |
| 41 | s, ok := status.FromError(err) |
| 42 | require.True(t, ok) |
| 43 | require.Equal(t, codes.Unimplemented, s.Code()) |
| 44 | require.Contains(t, s.Message(), "malformed method name") |
| 45 | require.Equal(t, int64(0), ml.allInflight.Load()) |
| 46 | require.Equal(t, int64(0), ml.protectedMethodInflight.Load()) |
| 47 | } |
| 48 | |
| 49 | func checkGrpcStatusError(t *testing.T, err error, code codes.Code, msg string) { |
| 50 | require.Error(t, err) |
nothing calls this directly
no test coverage detected