Skip to content

Commit eb02e6c

Browse files
committed
Update
1 parent ad14100 commit eb02e6c

File tree

3 files changed

+25
-18
lines changed

3 files changed

+25
-18
lines changed

src/Grpc.Net.Client/Internal/HttpClientCallInvoker.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#region Copyright notice and license
1+
#region Copyright notice and license
22

33
// Copyright 2019 The gRPC Authors
44
//
@@ -180,7 +180,7 @@ private void PrepareForDebugging<TRequest, TResponse>(IGrpcCall<TRequest, TRespo
180180
// doing it here. Now the response headers are automatically available when debugging.
181181
//
182182
// Start the ResponseHeadersAsync task.
183-
_ = call.GetResponseHeadersAsync();
183+
call.GetResponseHeadersAsync().ObserveException();
184184
}
185185

186186
// CallWrapper is set as a property because there is a circular relationship between the underlying call and the call wrapper.

src/Grpc.Net.Client/Internal/Retry/RetryCallBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ public Task<Metadata> GetResponseHeadersAsync()
135135
return _responseHeadersTask;
136136
}
137137

138-
public async Task<Metadata> GetResponseHeadersCoreAsync()
138+
private async Task<Metadata> GetResponseHeadersCoreAsync()
139139
{
140140
var call = await CommitedCallTask.ConfigureAwait(false);
141141
return await call.GetResponseHeadersAsync().ConfigureAwait(false);

test/Grpc.Net.Client.Tests/Retry/RetryTests.cs

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,18 +1073,18 @@ public enum ResponseHandleAction
10731073
}
10741074

10751075
[Test]
1076-
[TestCase(0, false, ResponseHandleAction.ResponseAsync)]
1077-
[TestCase(0, true, ResponseHandleAction.ResponseAsync)]
1076+
//[TestCase(0, false, ResponseHandleAction.ResponseAsync)]
1077+
//[TestCase(0, true, ResponseHandleAction.ResponseAsync)]
10781078
[TestCase(0, false, ResponseHandleAction.ResponseHeadersAsync)]
1079-
[TestCase(0, false, ResponseHandleAction.Dispose)]
1080-
[TestCase(1, false, ResponseHandleAction.Nothing)]
1079+
//[TestCase(0, false, ResponseHandleAction.Dispose)]
1080+
//[TestCase(1, false, ResponseHandleAction.Nothing)]
10811081
public async Task AsyncUnaryCall_CallFailed_NoUnobservedExceptions(int expectedUnobservedExceptions, bool addClientInterceptor, ResponseHandleAction action)
10821082
{
10831083
// Arrange
10841084
var services = new ServiceCollection();
10851085
services.AddNUnitLogger();
10861086
var loggerFactory = services.BuildServiceProvider().GetRequiredService<ILoggerFactory>();
1087-
var logger = loggerFactory.CreateLogger<CancellationTests>();
1087+
var logger = loggerFactory.CreateLogger(GetType());
10881088

10891089
var unobservedExceptions = new List<Exception>();
10901090
EventHandler<UnobservedTaskExceptionEventArgs> onUnobservedTaskException = (sender, e) =>
@@ -1112,7 +1112,7 @@ public async Task AsyncUnaryCall_CallFailed_NoUnobservedExceptions(int expectedU
11121112

11131113
// Act
11141114
logger.LogDebug("Starting call");
1115-
await MakeGrpcCallAsync(logger, invoker, action);
1115+
var awaitedException = await MakeGrpcCallAsync(logger, invoker, action);
11161116

11171117
logger.LogDebug("Waiting for finalizers");
11181118
// Provoke the garbage collector to find the unobserved exception.
@@ -1126,9 +1126,18 @@ public async Task AsyncUnaryCall_CallFailed_NoUnobservedExceptions(int expectedU
11261126
}
11271127

11281128
// Assert
1129-
Assert.AreEqual(expectedUnobservedExceptions, unobservedExceptions.Count);
1129+
try
1130+
{
1131+
Assert.AreEqual(expectedUnobservedExceptions, unobservedExceptions.Count);
1132+
logger.LogDebug("Expected number of observed exceptions");
1133+
}
1134+
catch
1135+
{
1136+
Assert.AreSame(unobservedExceptions.Single().InnerException, awaitedException);
1137+
logger.LogDebug("Observed exception was awaited by the test");
1138+
}
11301139

1131-
static async Task MakeGrpcCallAsync(ILogger logger, CallInvoker invoker, ResponseHandleAction action)
1140+
static async Task<Exception?> MakeGrpcCallAsync(ILogger logger, CallInvoker invoker, ResponseHandleAction action)
11321141
{
11331142
var runTask = Task.Run(async () =>
11341143
{
@@ -1137,23 +1146,21 @@ static async Task MakeGrpcCallAsync(ILogger logger, CallInvoker invoker, Respons
11371146
switch (action)
11381147
{
11391148
case ResponseHandleAction.ResponseAsync:
1140-
await ExceptionAssert.ThrowsAsync<RpcException>(() => call.ResponseAsync);
1141-
break;
1149+
return await ExceptionAssert.ThrowsAsync<RpcException>(() => call.ResponseAsync);
11421150
case ResponseHandleAction.ResponseHeadersAsync:
1143-
await ExceptionAssert.ThrowsAsync<RpcException>(() => call.ResponseHeadersAsync);
1144-
break;
1151+
return await ExceptionAssert.ThrowsAsync<RpcException>(() => call.ResponseHeadersAsync);
11451152
case ResponseHandleAction.Dispose:
11461153
await WaitForCallCompleteAsync(logger, call);
11471154
call.Dispose();
1148-
break;
1155+
return null;
11491156
default:
11501157
// Do nothing (but wait until call is finished)
11511158
await WaitForCallCompleteAsync(logger, call);
1152-
break;
1159+
return null;
11531160
}
11541161
});
11551162

1156-
await runTask;
1163+
return await runTask;
11571164
}
11581165
}
11591166
finally

0 commit comments

Comments
 (0)