-
Notifications
You must be signed in to change notification settings - Fork 4.9k
ensure remote server HTTP2 tests are actually using HTTP2 #39343
ensure remote server HTTP2 tests are actually using HTTP2 #39343
Conversation
|
/azp run corefx-outerloop-windows |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run corefx-outerloop-linux |
|
Azure Pipelines successfully started running 1 pipeline(s). |
| yield return new object[] { | ||
| remoteServer, | ||
| remoteServer.RedirectUriForDestinationUri( | ||
| statusCode:302, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: add space after ":" for named parameters.
(comment applies to other places in the PR)
|
Windows 7 CI runs are failing with the HTTP/2.0 check. That's probably because Windows 7 doesn't support ALPN. |
|
Yeah, makes sense. Will fix. Thanks. |
|
/azp run corefx-outerloop-windows |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run corefx-outerloop-linux |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run corefx-outerloop-windows |
|
/azp run corefx-outerloop-linux |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@stephentoub Can you review? |
| { | ||
| using (HttpClient client = CreateHttpClient()) | ||
| using (HttpResponseMessage response = await client.GetAsync(remoteServer)) | ||
| using (HttpClient client = CreateHttpClientForRemoteServer(remoteServer)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This HttpClientHandlerTest class has derivations for both 1.1:
| public sealed class SocketsHttpHandler_HttpClientHandlerTest : HttpClientHandlerTest |
and 2.0:
| public sealed class SocketsHttpHandlerTest_HttpClientHandlerTest_Http2 : HttpClientHandlerTest |
In conjunction with this remote server approach, that then means we're running the same tests more than we should be? e.g. for both the 1.1 and 2.0 derivations, we'll run both 1.1 and 2.0 tests?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep. See #39345.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note also that since a bunch of the tests in HttpClientHandlerTest are 1.1-loopback based (not generic loopback), we're also running these tests twice for 1.1, since in the "2.0" derivation they still run as 1.1.
The "2.0" derivation really means "use the 2.0 loopback server". It would be nice to clarify this, but it's not urgent.
src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTestBase.cs
Outdated
Show resolved
Hide resolved
stephentoub
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than my two comments/questions, LGTM. Thanks.
|
/azp run corefx-outerloop-windows |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run corefx-outerloop-linux |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
I'm seeing an assert in the certificate code on Linux. Seems to be happening for both CurlHandler and SocketsHttpHandler. @bartonjs any idea what's going on here? Unfortuately, it's not obvious which test is causing this. Likely it's an existing test that didn't run over SSL before, but does now because of HTTP2. |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
Interestingly, we're still hitting the same assert even with the code I added to try to skip cert validation on Linux for the HTTP2 endpoint. I don't see anything wrong with the code I added, so this would seem to imply that we see this even with HTTP/1.1 over SSL. Not sure what to make of this. There must be a test that wasn't running over SSL before and now is, and it's hitting this assert. But all the tests are running against the same endpoint, so I have no idea why it would cause this assert now. |
|
/azp run corefx-outerloop-windows |
|
Pull request contains merge conflicts. |
…some remote server tests to run over HTTP2 as well as HTTP/1.1
…Server is used instead
4bb8441 to
0aea825
Compare
|
/azp run corefx-outerloop-windows |
|
/azp run corefx-outerloop-linux |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run corefx-outerloop-osx |
|
Azure Pipelines successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run corefx-outerloop-linux |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run |
|
Azure Pipelines successfully started running 4 pipeline(s). |
|
Failures are unrelated |
…ttp2 ensure remote server HTTP2 tests are actually using HTTP2
…stsforhttp2 ensure remote server HTTP2 tests are actually using HTTP2 Commit migrated from dotnet/corefx@6ec67c1
Fixes #39178
Contributes to #34460
Update many remote server tests to take a RemoteServer argument (instead of just server uri) and use CreateHttpClientForRemoteServer to set the HttpClient's DefaultRequestVersion property based on the definition of the RemoteServer.
Also, validate during request processing that we are sending the correct request version and receiving the expected response version.
Also, update some remote server tests to run against the HTTP2 remote server as well.