Skip to content

[HTTP/3] Reenable interop tests#56867

Merged
ManickaP merged 3 commits intodotnet:mainfrom
ManickaP:mapichov/54726_enabled_interop_tests
Aug 6, 2021
Merged

[HTTP/3] Reenable interop tests#56867
ManickaP merged 3 commits intodotnet:mainfrom
ManickaP:mapichov/54726_enabled_interop_tests

Conversation

@ManickaP
Copy link
Member

@ManickaP ManickaP commented Aug 4, 2021

Re-enabled interop tests. Added some more external servers.
Added tests which also buffer the content and fixed handling of 0-byte length DATA frame.

https://quic.rocks:4433/ was randomly reporting as UNREACHABLE, so I removed it.

Fixes #54726

@ghost ghost added the area-System.Net.Http label Aug 4, 2021
@ghost
Copy link

ghost commented Aug 4, 2021

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

Re-enabled interop tests. Added some more external servers.
Added tests which also buffer the content and fixed handling of 0-byte length DATA frame.

https://quic.rocks:4433/ was randomly reporting as UNREACHABLE, so I removed it.

Fixes #54726

Author: ManickaP
Assignees: -
Labels:

area-System.Net.Http

Milestone: -

@ManickaP ManickaP requested review from a team, geoffkizer and wfurt August 4, 2021 21:04

Assert.Equal(HttpStatusCode.OK, responseB.StatusCode);
Assert.NotEqual(3, responseB.Version.Major);
Assert.Equal(3, responseB.Version.Major);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How did this test ever work?? :)

Method = HttpMethod.Get,
RequestUri = new Uri(uri, UriKind.Absolute),
Version = HttpVersion.Version30,
Version = HttpVersion.Version20,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this actually matter? The first request should not be processed via HTTP3 regardless, because we haven't received the Alt-Svc header yet. In fact isn't that the point of setting Version30 here -- to validate that even though we requested 30, we won't get it on the first request because we haven't gotten an Alt-Svc yet?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They were all failing with the RequestA being directly processed as H/3. The problem was in the test using a handler replacing HttpVersionPolicy.RequestVersionOrLower with HttpVersionPolicy.RequestVersionExact. I fixed that.

Version = HttpVersion.Version30,
VersionPolicy = HttpVersionPolicy.RequestVersionExact
};
using HttpResponseMessage response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead).WaitAsync(TimeSpan.FromSeconds(20));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we validate the actual content too? I don't know how these endpoints work. If they have fixed content that will never change, seems like we could validate that we receive the correct content.

Or if not, can we at least validate that the content exists, i.e. we receive > 0 bytes?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a check for non-empty content.
I don't think we should check for a particular content value since these are external and can change any time.

Copy link
Contributor

@geoffkizer geoffkizer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Product change looks fine -- some questions re test code above.

@ManickaP
Copy link
Member Author

ManickaP commented Aug 5, 2021

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@dotnet dotnet deleted a comment from azure-pipelines bot Aug 5, 2021
@ManickaP ManickaP requested a review from geoffkizer August 5, 2021 13:04
Copy link
Member

@wfurt wfurt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ManickaP
Copy link
Member Author

ManickaP commented Aug 5, 2021

Failures are unrelated.

@ManickaP ManickaP merged commit 40ed818 into dotnet:main Aug 6, 2021
@ManickaP ManickaP deleted the mapichov/54726_enabled_interop_tests branch August 6, 2021 07:35
@karelz karelz added this to the 6.0.0 milestone Aug 17, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Sep 16, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HTTP/3] Interop tests are failing

4 participants