Skip to content

Add manual macOS terminal regression tests - #14

Closed
kartheekp-ms wants to merge 1 commit into
kartheekp-ms-arcade-tool-signingfrom
kartheekp-ms-mac-terminal-tests
Closed

kartheekp-ms wants to merge 1 commit into
kartheekp-ms-arcade-tool-signingfrom
kartheekp-ms-mac-terminal-tests

Conversation

@kartheekp-ms

Copy link
Copy Markdown
Contributor

Summary

Add a manual-only, full terminal regression suite on top of #12. No production C#, pipeline, signing, root configuration, or existing PR/stack changes.

  • Import all 51 shared cases from kartheekp-ms/dotnet-package-skills at 59d3bc0d4fc80188d33bcc257d2a83c99a4cbfa3; retain every original assertion and the pinned manifests/emulator.
  • Keep Windows ConPTY behavior and add a standard-library macOS/Linux PTY adapter: controlling session/terminal, UTF-8 streaming, replies, live resize/SIGWINCH, output drain and owned-process/FD cleanup.
  • Port shell history, named-mutex and destination-alias fixtures without blanket Mac skips. Unix equivalents do not claim Win32 extended-path/NTFS coverage.
  • Add isolated setup/run instructions and focused adapter tests. SDK user/package/HTTP caches stay test-owned; fixture first-run global mutations and workload update checks are disabled.

Validation and limits

  • Final native Release builds: net8.0 and net10.0, zero errors/warnings.
  • Full Windows tool suites: 51/51 for each framework, zero failures/errors/skips (runtime 8.0.31 and 10.0.12, LatestPatch).
  • Focused Windows checks: 13 passed; 14 explicit POSIX-only helper skips.
  • Existing Ubuntu WSL: 22/22 portable/helper checks, including real POSIX PTYs. This is not a Linux full-tool suite or a Mac pass.
  • Real macOS execution remains pending. The driver selects all 51 tool cases on a Mac and does not conceal failures as skips.

The long tool suites were run on the initial 3bf02ff parent plus this final harness. Before first publication, this unpublished upper branch was fast-forwarded to 1a6fcc1372bd0c6a72d8f601edb9c9cccbdd1d65, whose only delta is the user's README cleanup. Source/test/build blobs and harness content remained unchanged; both native builds passed again on that final parent.

Run on a Mac

Follow the manual terminal README for the root SDK, matching architecture/runtimes, isolated venv and npm ci. After building from the repo root:

terminal="$PWD/dotnet-package-skills/tests/terminal"
run="$(mktemp -d "${TMPDIR:-/tmp}/package-skills-terminal.XXXXXX")"
"$terminal/.venv/bin/python" "$terminal/verify_picker.py" \
  --tool "$PWD/artifacts/bin/DotnetPackageSkills/Release/net10.0/dotnet-package-skills" \
  --artifacts "$run/net10.0"

For an optional .NET 8 run, use the net8.0 apphost with DOTNET_ROLL_FORWARD=LatestPatch and an installed .NET 8 runtime in the same installation. Preserve the run directory's ANSI/screen/buffer logs when reporting a failure.

Import the pinned 51-case shared terminal suite, retain the Windows ConPTY backend, and add a standard-library POSIX PTY adapter with portable shell and locking fixtures. Document isolated manual Mac setup without changing production code or CI.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@kartheekp-ms
kartheekp-ms added this pull request to stack #13 October 6, 2026 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant