-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Move ILVerify tests to run like the ILCompiler.TypeSystem managed tests #122083
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
|
Tagging subscribers to this area: @JulieLeeMSFT |
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.
Pull request overview
This PR migrates ILVerify tests from the test execution framework to run as managed tests similar to ILCompiler.TypeSystem tests. The main changes include replacing Newtonsoft.Json with System.Text.Json using source generators and restructuring the test project organization.
Key changes:
- Migrated from test framework execution to standard xUnit managed tests
- Replaced Newtonsoft.Json with System.Text.Json and source generation for better performance and AOT compatibility
- Converted IL test projects from legacy format to modern SDK-style projects
Reviewed changes
Copilot reviewed 60 out of 90 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/tests/ilverify/ILVerificationTests.csproj | Removed old test project file (now obsolete) |
| src/coreclr/tools/ILVerification.Tests/ILVerification.Tests.csproj | New managed test project with proper SDK structure |
| src/coreclr/tools/ILVerification.Tests/TestDataLoader.cs | Migrated from Newtonsoft.Json to System.Text.Json; changed return types to object[] for xUnit compatibility |
| src/coreclr/tools/ILVerification.Tests/JsonContext.cs | New source-generated JSON serialization context for AOT compatibility |
| src/coreclr/tools/ILVerification.Tests/ILMethodTester.cs | New test class for IL method verification tests |
| src/coreclr/tools/ILVerification.Tests/ILTypeVerificationTester.cs | New test class for type verification tests |
| src/coreclr/tools/ILVerification.Tests/ILTests/*.ilproj | Converted all IL test projects to modern SDK-style format |
| src/coreclr/tools/ILVerification.Tests/ILTests/*.il | Added IL test source files in new location |
| src/coreclr/tools/ILVerification.Tests/ILTests/Directory.Build.props | Build properties for IL test projects |
| eng/Subsets.props | Added new test project to build system |
jakobbotsch
left a comment
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.
Are the instructions in https://github.com/dotnet/runtime/blob/main/src/coreclr/tools/ILVerify/README.md valid after this change?
|
I will update the README. |
|
Where do these test run after this change in CI? If it is optional leg, should we verify that it is passing? |
|
They'll run in the CLR_Tools_Tests job in the runtime pipeline. Here's where they ran on this PR run: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1220914&view=logs&j=bc555b48-a433-5520-02cb-885a268ad262&t=ac67efe8-e930-5071-5878-22316a6283a4&l=4626 |
|
/ba-g Filled #122228 on the new unrelated failures |
Fixes #121594
Also remove usage of Newtonsoft.Json and use System.Text.Json instead.