Skip to content

Commit d5b35f6

Browse files
JackWinkbwplotka
authored andcommitted
Update gRPC and fix tests (mwitkow#27)
Combines the two open PRs so the tests pass and we don't depend on outdated gRPC internals.
1 parent 67591eb commit d5b35f6

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

proxy/handler.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99
"golang.org/x/net/context"
1010
"google.golang.org/grpc"
1111
"google.golang.org/grpc/codes"
12-
"google.golang.org/grpc/transport"
1312
)
1413

1514
var (
@@ -60,11 +59,10 @@ type handler struct {
6059
// forwarding it to a ClientStream established against the relevant ClientConn.
6160
func (s *handler) handler(srv interface{}, serverStream grpc.ServerStream) error {
6261
// little bit of gRPC internals never hurt anyone
63-
lowLevelServerStream, ok := transport.StreamFromContext(serverStream.Context())
62+
fullMethodName, ok := grpc.MethodFromServerStream(serverStream)
6463
if !ok {
6564
return grpc.Errorf(codes.Internal, "lowLevelServerStream not exists in context")
6665
}
67-
fullMethodName := lowLevelServerStream.Method()
6866
// We require that the director's returned context inherits from the serverStream.Context().
6967
outgoingCtx, backendConn, err := s.director(serverStream.Context(), fullMethodName)
7068
clientCtx, clientCancel := context.WithCancel(outgoingCtx)

proxy/handler_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ func (s *ProxyHappySuite) TestPingCarriesServerHeadersAndTrailers() {
135135
out, err := s.testClient.Ping(s.ctx(), &pb.PingRequest{Value: "foo"}, grpc.Header(&headerMd), grpc.Trailer(&trailerMd))
136136
require.NoError(s.T(), err, "Ping should succeed without errors")
137137
require.Equal(s.T(), &pb.PingResponse{Value: "foo", Counter: 42}, out)
138-
assert.Len(s.T(), headerMd, 1, "server response headers must contain server data")
138+
assert.Contains(s.T(), headerMd, serverHeaderMdKey, "server response headers must contain server data")
139139
assert.Len(s.T(), trailerMd, 1, "server response trailers must contain server data")
140140
}
141141

@@ -170,7 +170,7 @@ func (s *ProxyHappySuite) TestPingStream_FullDuplexWorks() {
170170
// Check that the header arrives before all entries.
171171
headerMd, err := stream.Header()
172172
require.NoError(s.T(), err, "PingStream headers should not error.")
173-
assert.Len(s.T(), headerMd, 1, "PingStream response headers user contain metadata")
173+
assert.Contains(s.T(), headerMd, serverHeaderMdKey, "PingStream response headers user contain metadata")
174174
}
175175
assert.EqualValues(s.T(), i, resp.Counter, "ping roundtrip must succeed with the correct id")
176176
}

0 commit comments

Comments
 (0)