@@ -2099,6 +2099,10 @@ func (t *myTap) handle(ctx context.Context, info *tap.Info) (context.Context, er
2099
2099
switch info .FullMethodName {
2100
2100
case "/grpc.testing.TestService/EmptyCall" :
2101
2101
t .cnt ++
2102
+
2103
+ if vals := info .Header .Get ("return-error" ); len (vals ) > 0 && vals [0 ] == "true" {
2104
+ return nil , status .Errorf (codes .Unknown , "tap error" )
2105
+ }
2102
2106
case "/grpc.testing.TestService/UnaryCall" :
2103
2107
return nil , fmt .Errorf ("tap error" )
2104
2108
case "/grpc.testing.TestService/FullDuplexCall" :
@@ -2120,13 +2124,28 @@ func testTap(t *testing.T, e env) {
2120
2124
tc := testgrpc .NewTestServiceClient (cc )
2121
2125
ctx , cancel := context .WithTimeout (context .Background (), defaultTestTimeout )
2122
2126
defer cancel ()
2127
+
2123
2128
if _ , err := tc .EmptyCall (ctx , & testpb.Empty {}); err != nil {
2124
2129
t .Fatalf ("TestService/EmptyCall(_, _) = _, %v, want _, <nil>" , err )
2125
2130
}
2126
2131
if ttap .cnt != 1 {
2127
2132
t .Fatalf ("Get the count in ttap %d, want 1" , ttap .cnt )
2128
2133
}
2129
2134
2135
+ if _ , err := tc .EmptyCall (metadata .AppendToOutgoingContext (ctx , "return-error" , "false" ), & testpb.Empty {}); err != nil {
2136
+ t .Fatalf ("TestService/EmptyCall(_, _) = _, %v, want _, <nil>" , err )
2137
+ }
2138
+ if ttap .cnt != 2 {
2139
+ t .Fatalf ("Get the count in ttap %d, want 2" , ttap .cnt )
2140
+ }
2141
+
2142
+ if _ , err := tc .EmptyCall (metadata .AppendToOutgoingContext (ctx , "return-error" , "true" ), & testpb.Empty {}); status .Code (err ) != codes .Unknown {
2143
+ t .Fatalf ("TestService/EmptyCall(_, _) = _, %v, want _, %s" , err , codes .Unknown )
2144
+ }
2145
+ if ttap .cnt != 3 {
2146
+ t .Fatalf ("Get the count in ttap %d, want 3" , ttap .cnt )
2147
+ }
2148
+
2130
2149
payload , err := newPayload (testpb .PayloadType_COMPRESSABLE , 31 )
2131
2150
if err != nil {
2132
2151
t .Fatal (err )
0 commit comments