-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Split IISFunctionals startup/shadow copy tests #38575
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
Conversation
Splitting the these tests gets IIS.Functionals down to 25 minutes from 33 minutes, I'm not sure its worth moving the HTTP2/3 tests out as it only shaves off about 2 minutes from the running time, but IIS functionals are still the long pole, with the next closest around 18 minutes, so we could shave another 7 minutes from the total time for asnpetcore-ci PR checks by splitting things up more It gets a bit uglier from here, we'd potentially have to split Startup/Shutdown tests out, which would create 4-5 more test projects since that would require splitting the base tests into 2 groups but would almost certainly get the time down to where we want... Thoughts @adityamandaleeka @Tratcher @dougbu @sebastienros @wtgodbe |
@HaoK if I'm reading this correctly, you're currently splitting IIS.FunctionalTests into 3 parts -- tests from Common.FunctionalTests, new IIS.Http.FunctionalTests, and new IIS.ShadowCopy.Tests.
|
Not quite, I just moved ShadowTests into a separate work item, as well as the handful of Http3/Http2 tests as well. But to get IIS.Functionals all the way down to 17 minutes we will need to split some of the Common.FunctionalTests into a separate, Common.StartupTests or something. The only queue that matters it he windows 11 queue since that's the only queue these tests run on for the pr checks, there hasn't been basically much variance from what I've seen over 5-6 runs, as they split out wait/delay/queue time from actual machine time, for example I'm really only asking if we think its worth the additional split up of the shared functional tests into 4 more test projects to cut 7 minutes off our PR runs. Today we have: We'd end up with something like IIS.FunctionalTests |
At the moment, the
That's not the case if we're considering lowering the above timeout. |
Last time I looked at the kusto data we didn't have any jobs that took longer than 17 minutes in total other than IIS Functionals, so we can probably start with just 30 minutes timeout everywhere, and just remove the special timeout. Kusto is down right now so I can't check... Actually it looks like most of the other test projects only include the startup/shutdown tests i was going to split out already, so it looks like we can probably get what we want just by splitting two more test files into IIS.LongTests, I'll give that a shot and see if that gets us below 20 minutes |
src/Servers/IIS/IIS/test/IIS.Http.Tests/IIS.Http.FunctionalTests.csproj
Outdated
Show resolved
Hide resolved
<ItemGroup> | ||
<!-- Required for QUIC & HTTP/3 in .NET 6 - https://github.com/dotnet/runtime/pull/55332 --> | ||
<RuntimeHostConfigurationOption Include="System.Net.SocketsHttpHandler.Http3Support" Value="true" /> | ||
</ItemGroup> |
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.
You should be able to clean out some unneeded flags and dependencies that don't apply to the tests in these split projects.
Okay I think this is the ideal split, since the startup/shutdown tests take 17 minutes, now we have 3 permutations of them which are the long pole, I think can get rid of the Http tests and put those back so we'll end up with: IIS.FunctionalTests (-ShadowCopy, startup/shutdown), should be < 10 minutes I'll go ahead and change the global helix job timeout to a consistent 30 min as part of this iteration before trying a few runs to see how things look, we should shave around 15 minutes from our average PRs I think |
src/Servers/IIS/IIS/test/IIS.ShadowCopy.Tests/IIS.ShadowCopy.Tests.csproj
Show resolved
Hide resolved
src/Servers/IIS/IIS/test/IIS.ShadowCopy.Tests/IIS.ShadowCopy.Tests.csproj
Outdated
Show resolved
Hide resolved
src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/IISExpress.FunctionalTests.csproj
Outdated
Show resolved
Hide resolved
Current results: |
Nice. What were the times before? |
IIS.Functionals 34m So we should gain around 17 minutes since we queue all the helix workitems at once |
src/Servers/IIS/IIS/test/IISExpress.FunctionalTests/IISExpress.FunctionalTests.csproj
Outdated
Show resolved
Hide resolved
Windows jobs on helix matrix look green https://dev.azure.com/dnceng/public/_build/results?buildId=1484808&view=logs&j=8c9dd6ae-5017-5a70-997c-c2386fed4e85&t=67839355-6a03-55d6-fbd7-5d56c2fd9ea1 |
Fixes #37915
Start splitting up tests to try and reduce the long pole of IIS.Functional tests