Fix CrossGen2 exit code handling in bash test scripts #121891
Draft
+4
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #
main PR
Description
When CrossGen2 fails (e.g., segfault with exit code 139), the bash test script continues to run R2RDump on invalid output, producing misleading errors like "The file is not a ReadyToRun image" instead of clearly reporting the CrossGen2 failure.
Added exit code check to skip R2RDump when CrossGen2 fails, matching existing Windows batch script behavior:
Customer Impact
Test failures show confusing error messages that obscure the actual failure (CrossGen2 crash). Developers waste time investigating R2RDump errors instead of the root cause.
Regression
No. This is a test infrastructure improvement, not a functional regression.
Testing
Verified logic matches Windows batch script implementation (line 327 in same file). No functional changes to CrossGen2 or R2RDump execution paths—only error reporting flow.
Risk
Minimal. Four-line change to generated test scripts. Failure cases exit earlier with clearer error messages. Success cases unchanged.
Package authoring no longer needed in .NET 9
IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older versions.
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.