Tests v1 - #44
Conversation
There was a problem hiding this comment.
Pull request overview
This PR expands the repository’s test and CI infrastructure by adding new UI characterization tests, hardening TLS integration tests against hangs, and making the Windows build workflow explicitly target the correct MSVC architecture while keeping an x64 host toolchain.
Changes:
- Parameterize the VS 2026 Build Tools environment setup and add CI verification for MSVC target/host tool resolution.
- Add new reported-defect UI characterization tests (ZIP navigation + HTML Help Search), plus supporting test settings and native-command helpers.
- Harden SChannel TLS integration tests with shared handshake timeouts and more robust teardown; tighten UTF-16 conversion handling in a Win64 redirection path.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| tools/setup-vs2026-buildtools.ps1 | Adds a target-architecture parameter and adjusts developer-environment export behavior for CI matrix builds. |
| .github/workflows/pr-msbuild.yml | Uses the new setup parameter, verifies MSVC target/host resolution, and centralizes PreferredToolArchitecture. |
| run-ui-tests.ps1 | Adds a guarded, repo-root runner for UI tests with explicit executable resolution and sandbox env wiring. |
| tests/FileManager.UiTests/SChannelTlsIntegrationTests.cs | Adds handshake deadlines, cancellation-aware accept/auth flows, and reliable teardown to prevent hangs. |
| tests/FileManager.UiTests/ReportedDefectCharacterizationUiTests.cs | Introduces new UI characterization tests for reported ZIP navigation and Help Search behaviors. |
| tests/FileManager.UiTests/Infrastructure/UiTestSettings.cs | Adds opt-in gating helpers for ZIP plug-in presence and Help Search fixtures. |
| tests/FileManager.UiTests/Infrastructure/NativeCommands.cs | Adds stable native command IDs for Open and Help Search plus an Enter-key helper for HTML Help. |
| tests/FileManager.UiTests/README.md | Updates documentation to reflect runner behavior and new characterization lanes/fixtures. |
| src/fileswindow_navigation.cpp | Ensures wide-path conversions are validated before Win64 redirection comparisons/append operations. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 12 out of 12 changed files in this pull request and generated no new comments.
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
src/fileswindow_navigation.cpp:2007
- IsWin64RedirectedDir ignores its
lastSubDirout-parameter by always passingNULLto IsWin64RedirectedDirW. There are call sites that pass a non-null pointer (e.g.,IsWin64RedirectedDir(copy, &st, FALSE)later in this file), so this wrapper currently cannot fulfill the contract implied by its signature and can lead to incorrect path rewriting or control-flow (e.g., repeatedcontinuewithout advancing state). Consider either (1) propagating thelastSubDirbehavior in the UTF-8 wrapper, or (2) removing the parameter and updating call sites to passNULLexplicitly if the output is intentionally unsupported.
CWidePath pathW(path);
// Redirection comparisons need the original spelling; reject failed UTF-16 conversion instead of using a removed ambiguous accessor.
if (!pathW.IsValid())
return FALSE;
return IsWin64RedirectedDirW(pathW.GetDisplayPath(), NULL, failIfDirWithSameNameExists);
No description provided.