mirror of
https://github.com/obra/superpowers.git
synced 2026-08-19 05:15:55 +00:00
tests: redirect stdin from /dev/null when spawning claude CLI
run_claude ran `timeout "$timeout" "${cmd[@]}"` with the suite's stdin
inherited by the spawned CLI. When the suite is run from a terminal (or
any open stdin), claude -p can block reading stdin and each test stalls
for its full timeout instead of completing.
Verified deterministically with a stub `claude` that reads stdin (cat):
with an open stdin pipe the old helper blocks until timeout kills it
(exit 124); with the redirect it exits immediately with output.
Part of #2130; defect documented in PR #2071 by @ericyen97903-lab.
This commit is contained in:
@@ -15,8 +15,9 @@ run_claude() {
|
||||
cmd+=(--allowed-tools="$allowed_tools")
|
||||
fi
|
||||
|
||||
# Run Claude in headless mode with timeout
|
||||
if timeout "$timeout" "${cmd[@]}" > "$output_file" 2>&1; then
|
||||
# Run Claude in headless mode with timeout. Redirect stdin from
|
||||
# /dev/null so the CLI can't block waiting for input and hang the suite.
|
||||
if timeout "$timeout" "${cmd[@]}" > "$output_file" 2>&1 < /dev/null; then
|
||||
cat "$output_file"
|
||||
rm -f "$output_file"
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user