MCPcopy
hub / github.com/grpc/grpc-go / TestInterceptorCanAccessCallOptions

Method TestInterceptorCanAccessCallOptions

test/end2end_test.go:5649–5751  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

5647}
5648
5649func (s) TestInterceptorCanAccessCallOptions(t *testing.T) {
5650 e := tcpClearRREnv
5651 te := newTest(t, e)
5652 te.startServer(&testServer{security: e.security})
5653 defer te.tearDown()
5654
5655 type observedOptions struct {
5656 headers []*metadata.MD
5657 trailers []*metadata.MD
5658 peer []*peer.Peer
5659 creds []credentials.PerRPCCredentials
5660 failFast []bool
5661 maxRecvSize []int
5662 maxSendSize []int
5663 compressor []string
5664 subtype []string
5665 }
5666 var observedOpts observedOptions
5667 populateOpts := func(opts []grpc.CallOption) {
5668 for _, o := range opts {
5669 switch o := o.(type) {
5670 case grpc.HeaderCallOption:
5671 observedOpts.headers = append(observedOpts.headers, o.HeaderAddr)
5672 case grpc.TrailerCallOption:
5673 observedOpts.trailers = append(observedOpts.trailers, o.TrailerAddr)
5674 case grpc.PeerCallOption:
5675 observedOpts.peer = append(observedOpts.peer, o.PeerAddr)
5676 case grpc.PerRPCCredsCallOption:
5677 observedOpts.creds = append(observedOpts.creds, o.Creds)
5678 case grpc.FailFastCallOption:
5679 observedOpts.failFast = append(observedOpts.failFast, o.FailFast)
5680 case grpc.MaxRecvMsgSizeCallOption:
5681 observedOpts.maxRecvSize = append(observedOpts.maxRecvSize, o.MaxRecvMsgSize)
5682 case grpc.MaxSendMsgSizeCallOption:
5683 observedOpts.maxSendSize = append(observedOpts.maxSendSize, o.MaxSendMsgSize)
5684 case grpc.CompressorCallOption:
5685 observedOpts.compressor = append(observedOpts.compressor, o.CompressorType)
5686 case grpc.ContentSubtypeCallOption:
5687 observedOpts.subtype = append(observedOpts.subtype, o.ContentSubtype)
5688 }
5689 }
5690 }
5691
5692 te.unaryClientInt = func(_ context.Context, _ string, _, _ any, _ *grpc.ClientConn, _ grpc.UnaryInvoker, opts ...grpc.CallOption) error {
5693 populateOpts(opts)
5694 return nil
5695 }
5696 te.streamClientInt = func(_ context.Context, _ *grpc.StreamDesc, _ *grpc.ClientConn, _ string, _ grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error) {
5697 populateOpts(opts)
5698 return nil, nil
5699 }
5700
5701 defaults := []grpc.CallOption{
5702 grpc.WaitForReady(true),
5703 grpc.MaxCallRecvMsgSize(1010),
5704 }
5705 tc := testgrpc.NewTestServiceClient(te.clientConn(grpc.WithDefaultCallOptions(defaults...)))
5706

Callers

nothing calls this directly

Calls 15

UnaryCallMethod · 0.95
StreamingInputCallMethod · 0.95
WaitForReadyFunction · 0.92
MaxCallRecvMsgSizeFunction · 0.92
WithDefaultCallOptionsFunction · 0.92
MaxCallSendMsgSizeFunction · 0.92
PerRPCCredentialsFunction · 0.92
HeaderFunction · 0.92
TrailerFunction · 0.92
PeerFunction · 0.92
UseCompressorFunction · 0.92
CallContentSubtypeFunction · 0.92

Tested by

no test coverage detected