Skip to content

test(artifacts): skip directory symlink traversal test on Windows without symlink privileges - #10542

Open
pellurusaranya-byte wants to merge 1 commit into
morluto:mainfrom
pellurusaranya-byte:fix/windows-symlink-test-portability
Open

pellurusaranya-byte wants to merge 1 commit into
morluto:mainfrom
pellurusaranya-byte:fix/windows-symlink-test-portability

Conversation

@pellurusaranya-byte

@pellurusaranya-byte pellurusaranya-byte commented Nov 14, 2026 •

Copy link
Copy Markdown

Summary

Skips the directory symlink traversal test in ReleaseExposureReader.test.ts on Windows where unprivileged symlink creation fails with EPERM.

Problem and expected behavior

In src/artifacts/ReleaseExposureReader.test.ts (line 2661), the test "keeps symlink traversal in a selected directory path" attempts to create a directory symlink using await symlink(join(root, "real", "child"), join(root, "link")).

On Windows, creating symlinks without Developer Mode or elevated privileges (SeCreateSymbolicLinkPrivilege) throws EPERM: operation not permitted, symlink.

Other symlink tests in this file (lines 1204, 1226, 1246, 1259, 4794, 4835) already use it.skipIf(process.platform === "win32"), but line 2661 missed the guard.

Expected behavior: The test should be skipped on Windows when run unprivileged, matching the rest of the test suite.

Change and scope

  • Wrapped the test in it.skipIf(process.platform === "win32").
  • Test-only change, no runtime impact.

Contract and boundary impact

  • Semantic owner and earliest changed stage: tests only
  • Contribution scope fit and linked maintainer decision: not applicable
  • CLI and MCP/tool-catalog contract: none
  • Provider, bridge, target-format, or platform compatibility: Windows test portability
  • Evidence, artifact, provenance, or reconstruction contract: none
  • Target selection, authority, upstream behavior, and cleanup details: not applicable
  • Generated metadata, package, or installation impact: none

Expected effects:

  • Documentation or usability only; no target interaction.

Evidence and regression coverage

  • Tests added or updated: src/artifacts/ReleaseExposureReader.test.ts
  • Base reproduction: keeps symlink traversal in a selected directory path throws EPERM on Windows without symlink privileges.
  • After fix: Test is cleanly skipped on Windows.
  • Remaining proof gaps: none.

For evidence-bearing changes:

  • Observed, derived, and inferred claims remain distinguishable.
  • Artifact identity, source provenance, and failed attempts remain preserved.
  • Unsupported, incomplete, unavailable, or uncertain outcomes remain visible.

Validation performed

  • Verified against Node on Windows 11.
  • Test is cleanly skipped on Windows without EPERM errors.

Compatibility, safety, and release

  • Breaking changes or migration steps: none
  • Real Hopper/Ghidra, browser, or OS coverage: Windows 11
  • Package or release metadata impact: none
  • Security, privacy, process, or containment review: test-only

Author readiness

Human owner: @pellurusaranya-byte

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

@chatgpt-codex-connector

Copy link
Copy Markdown
Codex Review Summary: ❌ Failed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ❌ Failed 2026-11-14T13:27:36.629895Z
We couldn’t complete this review. Comment @codex review to try again.
7c28646 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Repo admins can enable using credits for code reviews in their settings.

@greptile-apps

greptile-apps Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Low impact] This test-only change appears safe to merge.

Summary

Adds it.skipIf(process.platform === "win32") to the directory symlink traversal test in ReleaseExposureReader.test.ts.

  • The symlink traversal test skips on Windows and still runs elsewhere.

Reviews (1) · Last reviewed commit: "test(artifacts): skip directory symlink ..." · Reviewed by Greptile

This branch has not been deployed

No deployments
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