Skip to content

Run perf test files without a shell command #4743

Description

@coderabbitai

Summary

Replace the shell-based TypeScript perf-test invocation in tests/perf/run-all.ts with an argument-based child-process API.

The runner currently interpolates each globbed filename into an execSync command string. Although the filename is quoted, shell parsing still makes this unsuitable for paths containing shell metacharacters.

Required changes

  • Replace execSync with an argument-based API such as execFileSync or spawnSync.
  • Invoke the TypeScript runner without relying on the Windows shell launcher.
  • Pass the normalized perf-test file path as a separate argument.
  • Preserve inherited standard input/output/error behavior.

Affected area

  • tests/perf/run-all.ts

Rationale

Avoid shell command construction from filesystem-derived paths and retain cross-platform execution.

Acceptance criteria

  • The performance test runner executes each matching .ts file without constructing a shell command from its path.
  • The runner works on Windows and non-Windows environments.
  • Child-process output remains inherited.

Backlinks

Requested by: @VariableVince

Metadata

Metadata

Assignees

No one assigned

    Labels

    not-approvedThis issue has NOT been approved by the maintainers.

    Type

    No type

    Projects

    Status
    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions