Merge pull request #543 from bradfitz/teststuff

test: misc cleanups
This commit is contained in:
Qi Zhao
2016-02-10 16:46:20 -08:00

View File

@ -61,10 +61,16 @@ import (
) )
var ( var (
// For headers:
testMetadata = metadata.MD{ testMetadata = metadata.MD{
"key1": []string{"value1"}, "key1": []string{"value1"},
"key2": []string{"value2"}, "key2": []string{"value2"},
} }
// For trailers:
testTrailerMetadata = metadata.MD{
"tkey1": []string{"trailerValue1"},
"tkey2": []string{"trailerValue2"},
}
testAppUA = "myApp1/1.0 myApp2/0.9" testAppUA = "myApp1/1.0 myApp2/0.9"
) )
@ -79,7 +85,7 @@ func (s *testServer) EmptyCall(ctx context.Context, in *testpb.Empty) (*testpb.E
// For testing purpose, returns an error if there is attached metadata other than // For testing purpose, returns an error if there is attached metadata other than
// the user agent set by the client application. // the user agent set by the client application.
if _, ok := md["user-agent"]; !ok { if _, ok := md["user-agent"]; !ok {
return nil, grpc.Errorf(codes.DataLoss, "got extra metadata") return nil, grpc.Errorf(codes.DataLoss, "missing expected user-agent")
} }
var str []string var str []string
for _, entry := range md["user-agent"] { for _, entry := range md["user-agent"] {
@ -114,7 +120,7 @@ func (s *testServer) UnaryCall(ctx context.Context, in *testpb.SimpleRequest) (*
if err := grpc.SendHeader(ctx, md); err != nil { if err := grpc.SendHeader(ctx, md); err != nil {
return nil, fmt.Errorf("grpc.SendHeader(%v, %v) = %v, want %v", ctx, md, err, nil) return nil, fmt.Errorf("grpc.SendHeader(%v, %v) = %v, want %v", ctx, md, err, nil)
} }
grpc.SetTrailer(ctx, md) grpc.SetTrailer(ctx, testTrailerMetadata)
} }
pr, ok := peer.FromContext(ctx) pr, ok := peer.FromContext(ctx)
if !ok { if !ok {
@ -633,8 +639,9 @@ func testFailedEmptyUnary(t *testing.T, e env) {
tc := testpb.NewTestServiceClient(cc) tc := testpb.NewTestServiceClient(cc)
defer tearDown(s, cc) defer tearDown(s, cc)
ctx := metadata.NewContext(context.Background(), testMetadata) ctx := metadata.NewContext(context.Background(), testMetadata)
if _, err := tc.EmptyCall(ctx, &testpb.Empty{}); err != grpc.Errorf(codes.DataLoss, "got extra metadata") { wantErr := grpc.Errorf(codes.DataLoss, "missing expected user-agent")
t.Fatalf("TestService/EmptyCall(_, _) = _, %v, want _, %v", err, grpc.Errorf(codes.DataLoss, "got extra metadata")) if _, err := tc.EmptyCall(ctx, &testpb.Empty{}); err != wantErr {
t.Fatalf("TestService/EmptyCall(_, _) = _, %v, want _, %v", err, wantErr)
} }
} }
@ -704,10 +711,15 @@ func testMetadataUnaryRPC(t *testing.T, e env) {
if _, err := tc.UnaryCall(ctx, req, grpc.Header(&header), grpc.Trailer(&trailer)); err != nil { if _, err := tc.UnaryCall(ctx, req, grpc.Header(&header), grpc.Trailer(&trailer)); err != nil {
t.Fatalf("TestService.UnaryCall(%v, _, _, _) = _, %v; want _, <nil>", ctx, err) t.Fatalf("TestService.UnaryCall(%v, _, _, _) = _, %v; want _, <nil>", ctx, err)
} }
// Ignore optional response headers that Servers may set:
if header != nil {
delete(header, "trailer") // RFC 2616 says server SHOULD (but optional) declare trailers
delete(header, "date") // the Date header is also optional
}
if !reflect.DeepEqual(header, testMetadata) { if !reflect.DeepEqual(header, testMetadata) {
t.Fatalf("Received header metadata %v, want %v", header, testMetadata) t.Fatalf("Received header metadata %v, want %v", header, testMetadata)
} }
if !reflect.DeepEqual(trailer, testMetadata) { if !reflect.DeepEqual(trailer, testTrailerMetadata) {
t.Fatalf("Received trailer metadata %v, want %v", trailer, testMetadata) t.Fatalf("Received trailer metadata %v, want %v", trailer, testMetadata)
} }
} }