Skip to content

Add Process tests for MacCatalyst#126306

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/implement-process-tests-maccatalyst
Draft

Add Process tests for MacCatalyst#126306
Copilot wants to merge 2 commits intomainfrom
copilot/implement-process-tests-maccatalyst

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 30, 2026

All existing Process tests rely on RemoteExecutor, which is unsupported on MacCatalyst. This adds MacCatalyst-specific tests using simple Unix tools (ls, sleep) available in the MacCatalyst environment, modeled on the Android test additions from #126099.

Changes

  • ProcessTests.MacCatalyst.cs (new): Six MacCatalyst-specific Process tests covering:

    • Basic process start with inherited I/O
    • Redirected stdout/stderr
    • Process.Kill() termination
    • Non-zero exit code on command failure
    • ProcessName availability for a running process
    • StandardInputHandle/StandardOutputHandle/StandardErrorHandle via anonymous pipes
  • System.Diagnostics.Process.Tests.csproj:

    • Added $(NetCoreAppCurrent)-maccatalyst to TargetFrameworks
    • Included maccatalyst in the Unix compile condition (picks up ProcessTests.Unix.cs, ProcessThreadTests.Unix.cs, and related interop)
    • Added ItemGroup to compile ProcessTests.MacCatalyst.cs only for the maccatalyst target

Copilot AI linked an issue Mar 30, 2026 that may be closed by this pull request
@github-actions github-actions bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Mar 30, 2026
- Add $(NetCoreAppCurrent)-maccatalyst to TargetFrameworks
- Include Unix interop files for maccatalyst target
- Create ProcessTests.MacCatalyst.cs with tests for Process.Start,
  I/O redirection, process killing, exit codes, and process names
  modeled on ProcessTests.Android.cs

Fixes: tests cannot run on MacCatalyst because RemoteExecutor is not supported

Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/6cbdf5a5-19f7-46b1-acab-3a4a9f5a6dde

Co-authored-by: adamsitnik <6011991+adamsitnik@users.noreply.github.com>
Copilot AI changed the title [WIP] Add Process tests for MacCatalyst support Add Process tests for MacCatalyst Mar 30, 2026
Copilot AI requested a review from adamsitnik March 30, 2026 11:15
@github-actions github-actions bot added area-System.Diagnostics.Process and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Mar 30, 2026
@adamsitnik
Copy link
Copy Markdown
Member

/azp list

@azure-pipelines
Copy link
Copy Markdown

CI/CD Pipelines for this repository:

@dotnet-policy-service
Copy link
Copy Markdown
Contributor

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

@adamsitnik
Copy link
Copy Markdown
Member

/azp run runtime-maccatalyst

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@adamsitnik
Copy link
Copy Markdown
Member

adamsitnik commented Mar 30, 2026

@rolfbjarne @akoeplinger @vitek-karas I am going to need some help, as this failure does not tell me anything:

[08:54:54] info: Preparing run for maccatalyst
[08:54:54] info: Getting app bundle information from '/tmp/helix/working/B5070A06/w/A65C0914/e/System.Diagnostics.Process.Tests.app'..
[08:54:54] dbug: Property UIRequiredDeviceCapabilities not present in Info.plist, assuming 32-bit is not supported. Error: Failed to get bundle information: Print: Entry, "UIRequiredDeviceCapabilities", Does Not Exist
[08:54:54] dbug: *** Executing 'System.Diagnostics.Process.Tests' on MacCatalyst ***

@jkotas
Copy link
Copy Markdown
Member

jkotas commented Mar 30, 2026

All existing Process tests rely on RemoteExecutor, which is unsupported on MacCatalyst.

Why is RemoteExecutor not unsupported on MacCatalyst?

If we are able to start child processes on MacCatalyst, RemoteExecutor should work just fine.

@adamsitnik
Copy link
Copy Markdown
Member

Why is RemoteExecutor not unsupported on MacCatalyst?

If we are able to start child processes on MacCatalyst, RemoteExecutor should work just fine.

I don't know, but I agree it would be the best long-term solution.

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.

Implement Process tests for MacCatalyst

3 participants