Skip to content
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

Convert tests under GC subtree to the merged test model #92543

Merged
merged 18 commits into from
Aug 28, 2024

Conversation

trylek
Copy link
Member

@trylek trylek commented Sep 23, 2023

No description provided.

@ghost
Copy link

ghost commented Sep 23, 2023

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

Issue Details

null

Author: trylek
Assignees: trylek
Labels:

area-System.Reflection.Metadata

Milestone: -

@trylek
Copy link
Member Author

trylek commented Sep 24, 2023

/azp run runtime-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@trylek
Copy link
Member Author

trylek commented Sep 25, 2023

/azp run runtime-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@markples
Copy link
Member

When you're ready, you'll probably want to run gcstress because these are the kinds of tests that seem to get worse in that mode. (However, many are GCStressIncompatible and/or RequiresProcessIsolation, so there is less impact that there would be otherwise.)

@markples
Copy link
Member

GC\Stress\Framework loads the tests from GC\Stress\Tests in ways that I don't fully understand yet, but I suspect there may be some dependencies on the shapes of those tests.

@markples
Copy link
Member

[This is probably beyond the scope of this PR, but if you have problems in this area, perhaps it is relevant.]

The projects in GC\Scenarios\GCSimulator seem strange to me. I think all of them except for the main GCSimulator.csproj could be RunOnly and then maybe not need ReqProcIso, RefXUintWrapGen, AllowUnsafeBlocks, and ItemGroup Compile. Removing over 400 tests from the build seems like it would be noticeable time win too. (Also a Directory.Build.props would simplify this a lot too.)

I can contribute to this too - just let me know how you'd like to coordinate with this PR.

@trylek
Copy link
Member Author

trylek commented Sep 25, 2023

Thanks Mark for your valuable pointers and insights, running GC stress tests is certainly a good idea. For additional cleanups, I agree that the GCSimulator tests are basically 400 calls to the same test with different command-line arguments, my only thinking is that I'd love to first focus on removing all the legacy tests as that will let us get rid of the old variants in the scripts. There are tons of things we can clean up in the tests, in this PR I did some tiny formatting cleanups like converting tabs to spaces and fixing broken alignment here and there but naturally I didn't want to combine this already big change with non-trivial test refactoring. Once the final conversion PRs have been merged in, all subsequent cleanups are up for grabs.

@trylek
Copy link
Member Author

trylek commented Sep 25, 2023

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@trylek
Copy link
Member Author

trylek commented Sep 25, 2023

/cc @dotnet/gc

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@ghost
Copy link

ghost commented Sep 27, 2023

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

Issue Details

null

Author: trylek
Assignees: trylek
Labels:

area-GC-coreclr

Milestone: -

@jkoritzinsky jkoritzinsky assigned jkoritzinsky and unassigned trylek Aug 23, 2024
@jkoritzinsky
Copy link
Member

/azp run runtime-coreclr outerloop

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Mark the GC simulator merged runner as a GC-simulator test to avoid launching it just for it to skip every OOP test it executes.
@jkoritzinsky
Copy link
Member

/azp run runtime-coreclr gc-simulator

Copy link

No pipelines are associated with this pull request.

@markples
Copy link
Member

@jkoritzinsky
Copy link
Member

@markples
Copy link
Member

Thank you very much @trylek @jkoritzinsky for your work and answering all of my questions about this!

From those discussions:

  • GC team testing scenarios should continue to work
  • Test list was validated before-vs-after
  • All running tests have RPI (some already aren't running, some are part of RF, etc.)
  • RF should work
  • GCSimulator is currently being tested
  • Lots of good discussion about how to improve GCSimulator (or GCPerfSim) in the future - will be easier after old test runner is removed

@markples markples mentioned this pull request Aug 26, 2024
@jkoritzinsky
Copy link
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

@markples
Copy link
Member

@markples it looks like GCSimulator is working now. Also, it's surfacing failures a little more cleanly (explicit scenario failures are actually propagating back from Helix to AzDO and GitHub, which is nice).

That is great; thanks!

@jkoritzinsky
Copy link
Member

/ba-g nativeaot timeouts due to helix queue backup

@jkoritzinsky
Copy link
Member

I've validated that the nativeaot timeouts aren't related. Lets merge this in and get one step closer to removing the legacy test system!

@jkoritzinsky jkoritzinsky merged commit 4adc0b4 into dotnet:main Aug 28, 2024
154 of 159 checks passed
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Co-authored-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants