Skip to content

[HTTP/3] Reenable interop tests#56867

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

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

Conversation

@ManickaP

@ManickaP ManickaP commented Aug 4, 2021

Copy link
Copy Markdown
Member

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

ghost commented Aug 4, 2021

Copy link
Copy Markdown

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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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.

@geoffkizer geoffkizer left a comment

Copy link
Copy Markdown
Contributor

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

ManickaP commented Aug 5, 2021

Copy link
Copy Markdown
Member Author

/azp run runtime-libraries-coreclr outerloop

@azure-pipelines

Copy link
Copy Markdown
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

@wfurt wfurt left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@ManickaP

ManickaP commented Aug 5, 2021

Copy link
Copy Markdown
Member Author

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