test(release): run_all finds openssl (Git for Windows' own too) and skips test_release without one #144

Open
d4nkn3ss wants to merge 1 commit from d4nkn3ss/Longshot:fix/run-all-openssl into main
Contributor

Why

On Windows, tests/test_release.py errors from PowerShell or cmd ("the openssl command line is needed") instead of being skipped, because openssl is on PATH only inside Git Bash. Every other check whose tool is missing is skipped and says so.

What changed

  • tests: tests/run_all.py's find_tools() gains openssl: on PATH, else Git for Windows' own usr\bin\openssl.exe next to the git on PATH (git_openssl()), which every Windows checkout has.
  • tests: tests/test_release.py declares RUN_ALL_ARGS = ["--openssl", "{openssl}"], and with --openssl puts that folder first on PATH for release.py's openssl calls; with none found, run_all skips it ("not found here: openssl").
  • tests: tests/test_run_all_declarations.py's TOOLS gains openssl (it checks the set matches find_tools()).
  • docs: the tool list in CONTRIBUTING.md and run_all.py's docstring.

Flags and settings

None

Measurements

main: e28236b4 (2026-11-12)
this PR: fix/run-all-openssl @ 33dbc033
Hardware: Windows 11, Python 3.12 from python.org, Git for Windows 2.56.1; PowerShell (openssl not on PATH)
Scene: n/a (game-free)
Method: python -I -B tests/run_all.py test_release from PowerShell on both sides, and once with Git off PATH
How to reproduce: on Windows, from PowerShell, python -I -B tests/run_all.py test_release

main @ e28236b4 this PR @ 33dbc033
test_release's key tests (Keys), openssl not on PATH 3 ERROR: "the openssl command line is needed" run (Git's openssl) and pass
test_release with no openssl at all (Git off PATH) errors skipped: "not found here: openssl"
tests/run_all.py run_all (the runner's own tests) 3 passed 3 passed

Testing

Tested: the rows above on Windows 11.

Full suite: python -I -B tests/run_all.py on this branch @ 33dbc033: 500 passed, 3 failed, 35 skipped, the same three as main @ e28236b4: tests/test_check_third_party.py (#80), tests/test_setup_runtime.py (#118) and tests/test_release.py, whose two remaining failures are #119 (the SHA256SUMS fixture) and #145 (the git-cliff stand-in).

Not tested: Linux: openssl is on PATH there, so which("openssl") finds it as before and git_openssl() isn't reached.

Needs other testers: None

Screenshots

Nothing on screen

Risk and rollback

Tests only; reverting the commit is enough.

Issues

None

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above).
  • Tested in the game, or what wasn't is named under Testing. (Test-only change: nothing in the game.)
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. (A test result: the same on every run.)
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

If applicable

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • A check under tests/ that reads changed source updated in this PR, not weakened.
  • Docs updated.

🤖 Generated with Claude Code

## Why On Windows, `tests/test_release.py` errors from PowerShell or cmd ("the openssl command line is needed") instead of being skipped, because `openssl` is on PATH only inside Git Bash. Every other check whose tool is missing is skipped and says so. ## What changed - tests: `tests/run_all.py`'s `find_tools()` gains `openssl`: on PATH, else Git for Windows' own `usr\bin\openssl.exe` next to the git on PATH (`git_openssl()`), which every Windows checkout has. - tests: `tests/test_release.py` declares `RUN_ALL_ARGS = ["--openssl", "{openssl}"]`, and with `--openssl` puts that folder first on PATH for `release.py`'s `openssl` calls; with none found, `run_all` skips it ("not found here: openssl"). - tests: `tests/test_run_all_declarations.py`'s `TOOLS` gains `openssl` (it checks the set matches `find_tools()`). - docs: the tool list in `CONTRIBUTING.md` and `run_all.py`'s docstring. ## Flags and settings None ## Measurements main: e28236b4 (2026-11-12) this PR: fix/run-all-openssl @ 33dbc033 Hardware: Windows 11, Python 3.12 from python.org, Git for Windows 2.56.1; PowerShell (openssl not on PATH) Scene: n/a (game-free) Method: `python -I -B tests/run_all.py test_release` from PowerShell on both sides, and once with Git off PATH How to reproduce: on Windows, from PowerShell, `python -I -B tests/run_all.py test_release` | | main @ e28236b4 | this PR @ 33dbc033 | |---|---|---| | `test_release`'s key tests (`Keys`), openssl not on PATH | 3 ERROR: "the openssl command line is needed" | run (Git's openssl) and pass | | `test_release` with no openssl at all (Git off PATH) | errors | skipped: "not found here: openssl" | | `tests/run_all.py run_all` (the runner's own tests) | 3 passed | 3 passed | ## Testing **Tested:** the rows above on Windows 11. **Full suite:** `python -I -B tests/run_all.py` on this branch @ 33dbc033: 500 passed, 3 failed, 35 skipped, the same three as main @ e28236b4: `tests/test_check_third_party.py` (#80), `tests/test_setup_runtime.py` (#118) and `tests/test_release.py`, whose two remaining failures are #119 (the SHA256SUMS fixture) and #145 (the git-cliff stand-in). **Not tested:** Linux: `openssl` is on PATH there, so `which("openssl")` finds it as before and `git_openssl()` isn't reached. **Needs other testers:** None ## Screenshots Nothing on screen ## Risk and rollback Tests only; reverting the commit is enough. ## Issues None ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main`. - [x] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). - [x] Tested in the game, or what wasn't is named under Testing. (Test-only change: nothing in the game.) - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [x] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. (A test result: the same on every run.) - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### If applicable - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] A check under `tests/` that reads changed source updated in this PR, not weakened. - [x] Docs updated. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
d4nkn3ss force-pushed fix/run-all-openssl from 33dbc03343
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 8s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to d7f50a4f5b
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 10s
2026-11-13 08:35:05 +00:00
Compare
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 10s
This pull request doesn't have enough approvals yet. 0 of 1 approvals granted.
Some workflows are waiting to be reviewed.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'fix/run-all-openssl:d4nkn3ss-fix/run-all-openssl'
git switch 'd4nkn3ss-fix/run-all-openssl'
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!144
No description provided.