@@ -73,6 +73,7 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
73
73
[ InlineData ( 15 ) ]
74
74
public async Task LargeSingleHeader_ThrowsException ( int maxResponseHeadersLength )
75
75
{
76
+ var semaphore = new SemaphoreSlim ( 0 ) ;
76
77
using HttpClientHandler handler = CreateHttpClientHandler ( ) ;
77
78
handler . MaxResponseHeadersLength = maxResponseHeadersLength ;
78
79
@@ -85,6 +86,7 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
85
86
{
86
87
Assert . Contains ( ( handler . MaxResponseHeadersLength * 1024 ) . ToString ( ) , e . ToString ( ) ) ;
87
88
}
89
+ await semaphore . WaitAsync ( ) ;
88
90
} ,
89
91
async server =>
90
92
{
@@ -97,6 +99,10 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
97
99
#if ! WINHTTPHANDLER_TEST
98
100
catch ( QuicException ex ) when ( ex . QuicError == QuicError . StreamAborted && ex . ApplicationErrorCode == Http3ExcessiveLoad ) { }
99
101
#endif
102
+ finally
103
+ {
104
+ semaphore . Release ( ) ;
105
+ }
100
106
} ) ;
101
107
}
102
108
@@ -108,6 +114,7 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
108
114
[ InlineData ( int . MaxValue / 800 , 100 * 1024 ) ] // Capped at int.MaxValue
109
115
public async Task ThresholdExceeded_ThrowsException ( int ? maxResponseHeadersLength , int headersLengthEstimate )
110
116
{
117
+ var semaphore = new SemaphoreSlim ( 0 ) ;
111
118
await LoopbackServerFactory . CreateClientAndServerAsync ( async uri =>
112
119
{
113
120
using HttpClientHandler handler = CreateHttpClientHandler ( ) ;
@@ -131,6 +138,7 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
131
138
Assert . Contains ( ( handler . MaxResponseHeadersLength * 1024 ) . ToString ( ) , e . ToString ( ) ) ;
132
139
}
133
140
}
141
+ await semaphore . WaitAsync ( ) ;
134
142
} ,
135
143
async server =>
136
144
{
@@ -149,6 +157,10 @@ await LoopbackServerFactory.CreateClientAndServerAsync(async uri =>
149
157
#if ! WINHTTPHANDLER_TEST
150
158
catch ( QuicException ex ) when ( ex . QuicError == QuicError . StreamAborted && ex . ApplicationErrorCode == Http3ExcessiveLoad ) { }
151
159
#endif
160
+ finally
161
+ {
162
+ semaphore . Release ( ) ;
163
+ }
152
164
} ) ;
153
165
}
154
166
}
0 commit comments