Skip to content

stormtest: make runner pathing platform-agnostic (Windows) #509

@dsarno

Description

@dsarno

Background

script/stormtest.py's harness logic is already cross-platform — the in-editor scratch paths (res://_stormtest/...) go through Godot's virtual filesystem, and the host-side report path uses tempfile.gettempdir() + os.path.join + os.replace, all of which resolve correctly on Windows.

What's not platform-agnostic is the invocation surface around it, which currently assumes POSIX:

  • venv interpreter — docs/examples use .venv/bin/python; on Windows it's .venv\Scripts\python.exe.
  • script/serve-this-worktree is a #!/usr/bin/env bash script — needs Git Bash/WSL on Windows, or the external --reload server has to be started by hand.
  • $TMPDIR referenced in docs is POSIX; on Windows the temp dir is %TEMP% (the code already does the right thing via tempfile, but the docs/examples don't reflect it).

For now this is documented as a Windows heads-up in docs/STRESS_TESTING.md. This issue tracks removing the heads-up by making the tooling resilient.

Proposed

  • Auto-detect the venv interpreter (e.g. sys.executable, or a tiny launcher that picks Scripts\python.exe vs bin/python) so the documented command is identical on every OS.
  • Provide a non-bash way to serve a worktree's src/ with --reload (a small Python entrypoint, or document the raw command) so serve-this-worktree isn't a hard dependency on Windows.
  • Audit any remaining host-side path construction in the harness for separator/escaping resilience (prefer forward slashes / pathlib).

Acceptance

A Windows agent can copy-paste one command from the docs and run stormtest against a live editor with no POSIX-only steps, and the Windows note in docs/STRESS_TESTING.md can be deleted.

https://claude.ai/code/session_01Jq5X4ivngAf1N6r5UX2BVw

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions