diff --git a/tests/lease.sh b/tests/lease.sh index da783fc..f8f0d7c 100755 --- a/tests/lease.sh +++ b/tests/lease.sh @@ -1031,7 +1031,7 @@ EOF } run_reclaimer B "$shim:$PATH" & bpid=$! - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do [ -e "$state/b-paused-once" ] || [ -e "$state/B-ready" ] || { sleep 0.05; continue; } break done @@ -1039,7 +1039,7 @@ EOF { kill "$bpid" 2>/dev/null || :; echo "reclaimer B did not reach acquisition"; return 1; } run_reclaimer A "$PATH" & apid=$! - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do [ -e "$state/A-ready" ] && [ -e "$state/B-ready" ] || { sleep 0.05; continue; } break done @@ -1255,7 +1255,7 @@ t48_prelaunch_interrupt_releases_without_poison() ( pid=$! set +m count=0 - while [ ! -e "$marker" ] && [ "$count" -lt 100 ]; do + while [ ! -e "$marker" ] && [ "$count" -lt 600 ]; do sleep 0.05 count=$((count + 1)) done diff --git a/tests/liveness.sh b/tests/liveness.sh index ff3cd78..3a47a11 100644 --- a/tests/liveness.sh +++ b/tests/liveness.sh @@ -736,7 +736,7 @@ t10_watchdog_signal_is_terminal() { ) > "$state/output" 2>&1 & pid=$! set +m - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do [ -s "$state/status.pid" ] && grep -q '^status task-fake0000-aaaaaa --json$' "$state/calls.log" && break sleep 0.05 @@ -791,7 +791,7 @@ t11_loop_signal_is_terminal() { ) > "$state/output" 2>&1 & pid=$! set +m - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do grep -q '^status task-fake0000-aaaaaa --json$' "$state/calls.log" && break sleep 0.05 done @@ -831,7 +831,7 @@ t12_loop_signal_reaps_verifier() { ) > "$state/output" 2>&1 & pid=$! set +m - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do [ -s "$state/child.pid" ] && break sleep 0.05 done @@ -877,7 +877,7 @@ t13_prelaunch_generation_fence() { ) > "$state/output" 2>&1 & pid=$! set +m - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do grep -q '^--help$' "$state/calls.log" && break sleep 0.05 done @@ -898,31 +898,35 @@ t13_prelaunch_generation_fence() { } t14_midpoint_warning_continues_same_job() { - local repo state pid warnings tasks + local repo state pid warnings tasks ceiling=12 warning repo=$(new_repo budget-midpoint-repo) state="$TEST_ROOT/budget-midpoint-state" + warning="^MAESTRO_BUDGET: .*continuing to the ${ceiling}s hard ceiling" mkdir -p "$state" : > "$state/calls.log" status_empty > "$state/status.json" - # Pin verification consumes the first phase; leave five running poll samples before completion. - printf 'running\nrunning\nrunning\nrunning\nrunning\nrunning\ncompleted\n' > "$state/phases" set -m ( cd "$repo" && exec env HOME="$TEST_HOME" PATH="$TEST_PATH" \ MAESTRO_TEST_CALL_LOG="$state/calls.log" \ - MAESTRO_TEST_JOB_PHASE_FILE="$state/phases" \ + MAESTRO_TEST_JOB_TERMINAL_FLAG="$state/complete" \ MAESTRO_TEST_STATUS="$state/status.json" \ - MAESTRO_MAX_DISPATCH_SEC=8 \ + MAESTRO_MAX_DISPATCH_SEC="$ceiling" \ bash "$LOOP" --plan "$TEST_ROOT/plan.md" --verify true \ --max-iters 1 --max-idle 30 --poll 1 ) > "$state/output" 2>&1 & pid=$! set +m - wait_bounded "$pid" 11 + for _ in $(seq 1 240); do + grep -q "$warning" "$state/output" && break + sleep 0.05 + done + grep -q "$warning" "$state/output" && : > "$state/complete" + wait_bounded "$pid" 17 [ "$WAIT_TIMED_OUT" -eq 0 ] || { echo "midpoint completion exceeded bound"; return 1; } [ "$WAIT_RC" -eq 0 ] || { echo "rc=$WAIT_RC want 0: $(tr '\n' ' ' < "$state/output")"; return 1; } - warnings=$(grep -c '^MAESTRO_BUDGET: .*continuing to the 8s hard ceiling' "$state/output" || true) + warnings=$(grep -c "$warning" "$state/output" || true) tasks=$(grep -c '^task ' "$state/calls.log" || true) [ "$warnings" -eq 1 ] || { echo "midpoint warnings=$warnings want 1"; return 1; } [ "$tasks" -eq 1 ] || { echo "task starts=$tasks want 1"; return 1; } @@ -1093,7 +1097,7 @@ t19_waiting_contender_signal_does_not_cancel_owner() ( ) > "$state/output" 2>&1 3>&1 & pid=$! set +m - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do grep -q 'waiting for the write lease' "$state/output" && break sleep 0.05 done diff --git a/tests/provenance-edge.sh b/tests/provenance-edge.sh index c9f833e..791d5a4 100644 --- a/tests/provenance-edge.sh +++ b/tests/provenance-edge.sh @@ -111,7 +111,7 @@ EOF PATH="$shim:$PATH" write_lock_release ) > "$state/holder.out" 2>&1 & holder=$! - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do [ -e "$state/lock-removed" ] && break sleep 0.05 done @@ -190,7 +190,7 @@ t7_orphan_baseline_is_published_before_reclaim_handoff() { printf '%s\n' "$?" > "$state/reclaimer.rc" ) & reclaimer=$! - for _ in $(seq 1 100); do + for _ in $(seq 1 600); do [ -e "$state/publishing" ] && break sleep 0.05 done diff --git a/tests/shared-git-dir.sh b/tests/shared-git-dir.sh index d64a68f..5cf34d9 100755 --- a/tests/shared-git-dir.sh +++ b/tests/shared-git-dir.sh @@ -63,6 +63,4 @@ SUB_RC=$(cat "$D/sub-rc.txt" 2>/dev/null) N=$(mktemp -d); F=$(cd "$N" && bash -c "set -uo pipefail; . '$LIB'; write_lock_path"); rm -rf "$N" case "$F" in */.maestro-write.lock) ;; *) echo "VERIFY FAIL: non-git fallback = $F"; exit 1;; esac -[ -f "$ROOT/tests/lease.sh" ] || { echo "VERIFY FAIL: missing $ROOT/tests/lease.sh"; exit 1; } -bash "$ROOT/tests/lease.sh" 2>&1 | tail -1 | grep -qE '[1-9][0-9]* passed, 0 failed' || { echo "VERIFY FAIL: lease suite regressed"; exit 1; } -echo "VERIFY PASS: shared worktree/submodule lease path, contention=11, fallback intact, lease suite green" +echo "VERIFY PASS: shared worktree/submodule lease path, contention=11, fallback intact"