Skip to content

Replace Python CoreCLR test tooling with C# - #135253

Merged
agocke merged 5 commits into
dotnet:mainfrom
agocke:python-to-csharp-test-tools
Oct 23, 2026
Merged

agocke merged 5 commits into
dotnet:mainfrom
agocke:python-to-csharp-test-tools

Conversation

@agocke

@agocke agocke commented Oct 5, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Replace the Python CoreCLR test runner with a C# file-based app, retaining the Unix and Windows wrappers and their CLI behavior.
  • Replace the Python crossgen2 comparison tool with a C# file-based app. Publish it as a NativeAOT executable for Helix, which does not have an SDK in its work-item payload.
  • Remove obsolete Smarty/Tests.lst scripts and simplify runner OS detection, argument parsing, and log-directory setup.

Validation

  • ./build.sh clr+libs -lc release -rc checked -clang20 — passed (0 warnings, 0 errors) after raising the local WSL cgroup PID limit to 8192; earlier attempts failed when sccache could not spawn compilers under the lower PID limit.
  • ./src/tests/build.sh checked — passed (7 warnings, 0 errors).
  • ./src/tests/run.sh checked — passed: 4,364 passed, 208 skipped (including 30 ActiveIssue skips), 0 failed, 4,572 total. The wrapper invoked src/tests/run.cs.
  • /home/andy/code/runtime/.dotnet/dotnet run --file src/tests/run.cs -- --help — passed.
  • /home/andy/code/runtime/.dotnet/dotnet run --file src/tests/run.cs -- --tree — expected argument error (exit 2).
  • /home/andy/code/runtime/.dotnet/dotnet run --file src/tests/Common/scripts/crossgen2_comparison.cs -- --help — passed.
  • /home/andy/code/runtime/.dotnet/dotnet publish src/tests/Common/scripts/crossgen2_comparison.cs -c Release -r linux-x64 -p:PublishAot=true -o <temporary-output-directory> — passed; the published binary's --help also passed.
  • Both modified YAML templates parsed successfully with PyYAML; git diff --check passed.
  • Three warm --help runs measured median startup of 0.05s for python3 run.py and 0.07s for the C# file-based runner on this machine. This does not measure test runtime.

Publishing on Windows, macOS, and other architectures remains for CI to validate.

Note

This pull request description was generated with GitHub Copilot.

agocke and others added 3 commits September 28, 2026 23:43
Replace the Python runtime test runner and crossgen2 comparison tool with C# file-based apps. Publish the comparison runner as a native executable for Helix.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: f2666304-e57e-4639-a8cf-de7df0126ccc
Delete unused Python test utilities and the orphaned Smarty launcher as part of removing Python from the runtime test infrastructure.

Co-authored-by: Copilot <[email protected]>

Copilot-Session: f2666304-e57e-4639-a8cf-de7df0126ccc
Co-authored-by: Copilot <[email protected]>
Copilot-Session: bccb474c-a460-4ca7-abae-8247ecab3b91
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 5 pipeline(s).
11 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

Comment thread src/tests/run.cs Resolved
@agocke

agocke commented Oct 23, 2026

Copy link
Copy Markdown
Member Author

/ba-g all failures known

@agocke
agocke merged commit 10f036b into dotnet:main Oct 23, 2026
151 of 156 checks passed
@agocke
agocke deleted the python-to-csharp-test-tools branch October 23, 2026 04:07
@github-project-automation github-project-automation Bot moved this to Done in AppModel Oct 23, 2026
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 12.0-preview1 milestone Oct 26, 2026
@am11 am11 mentioned this pull request Nov 3, 2026
jkotas pushed a commit that referenced this pull request Nov 8, 2026
- Regex named blocks were already moved to Unicode 17.0 in #120623 while
the rest of the repo stayed on 16.0. This upgrades the remaining Unicode
data (CoreLib, System.Text.Encodings.Web, Regex case equivalences and
the native minipal casing table) straight to 18.0, the version now in
dotnet/runtime-assets (dotnet/runtime-assets#715). Unicode 18.0 has no
BMP block changes, so the named blocks table is unchanged.
- Bumps `System.Private.Runtime.UnicodeData` to `12.0.0-beta.26531.1` to
pick up the 18.0 data ahead of #133384.
- Converts the minipal `UnicodeDataGenerator` to a file-based app
(similar to #135253) and fixes `GenUnicodeProp` and
`GenerateRegexCasingTable`, which no longer built.

---------

Co-authored-by: Cursor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-Infrastructure-coreclr Only use for closed issues

Projects

Status: Done
Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants