-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Partition helix test runs using historical execution time data #62138
Conversation
607bcfc
to
841d67c
Compare
6f5c82a
to
b6ada4d
Compare
ab3b550
to
793e9fd
Compare
5a57832
to
9fc71af
Compare
@jaredpar this is ready for round 2 |
src/Compilers/CSharp/Test/EndToEnd/Microsoft.CodeAnalysis.CSharp.EndToEnd.UnitTests.csproj
Outdated
Show resolved
Hide resolved
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.
great progress.
src/Compilers/Test/Core/RunInSinglePartitionAssemblyAttribute.cs
Outdated
Show resolved
Hide resolved
timer.Start(); | ||
for (var i = 0; i < totalTests; i += MaxTestsReturnedPerRequest) | ||
{ | ||
var testResults = await GetTestResultsAsync(runForThisStage, i, MaxTestsReturnedPerRequest, testClient, cancellationToken); |
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.
It looks like this phase takes maybe 30 seconds on desktop. Should we tinker with firing the all the tasks off immediately, pushing them into an array or something, then awaiting them one by one?
There's no need to spend time on it in this PR, but thought we should keep it in our back pocket.
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.
Yup - we can play around with it (will do that separately). We have to be careful not to run too many though that we get rate limited.
src/Compilers/CSharp/Test/EndToEnd/Microsoft.CodeAnalysis.CSharp.EndToEnd.UnitTests.csproj
Show resolved
Hide resolved
Can we file a work item to track refactoring run tests and prepare tests to have the better separation of responsibilities? Essentially at this point I think we should just move all helix ops into prepare tests and dumb down run tests a bit (perhaps just remove it from our core infra loop). |
Done - #63413 |
test failures look like a known outage uploading results there is an ICM open for it right now. Will retry once it is closed. |
looks like there are some new breakages that were not showing up before. They also aren't showing up in main so likely some main change/helix rollout + partitioning is breaking this.
|
8ec1499
to
ff5c993
Compare
Going to merge this. Will followup on why exactly https://github.com/dotnet/roslyn/blob/main/src/Compilers/CSharp/Test/WinRT/Metadata/WinMdMetadataTests.cs#L141 causes the xunit hook to fail to load when run before any wpffact test. |
Resolves #62036
This does a few different things to fix our test partitioning
Microsoft.CodeAnalysis.CSharp.UnitTests.OverloadResolutionPerfTests.NestedLambdas_01
but that can be fixed as a followup