mirror of
https://github.com/obra/superpowers.git
synced 2026-09-01 03:19:24 +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")
|
cmd+=(--allowed-tools="$allowed_tools")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Run Claude in headless mode with timeout
|
# Run Claude in headless mode with timeout. Redirect stdin from
|
||||||
if timeout "$timeout" "${cmd[@]}" > "$output_file" 2>&1; then
|
# /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"
|
cat "$output_file"
|
||||||
rm -f "$output_file"
|
rm -f "$output_file"
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
Reference in New Issue
Block a user