#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT_DIR" TMP_DIR="$(mktemp -d)" trap 'rm -rf "$TMP_DIR"' EXIT FIXTURE_FAIL="$TMP_DIR/collector_stats_fail.tsv" cat > "$FIXTURE_FAIL" <<'EOF' openrouter f 严格真实模式下必须提供 API Key 2026-05-15 20:00:00 openrouter f 429 Too Many Requests 2026-05-15 19:59:00 openrouter t 2026-05-15 19:58:00 openrouter t 2026-05-15 19:57:00 openrouter t 2026-05-15 19:56:00 openrouter t 2026-05-15 19:55:00 openrouter f insert models failed 2026-05-15 19:54:00 EOF set +e FAIL_OUTPUT="$(bash scripts/collector_stats_window_audit.sh --input "$FIXTURE_FAIL" --limit 7 --assert-success-rate 95 2>&1)" FAIL_RC=$? set -e if [[ "$FAIL_RC" -eq 0 ]]; then echo "expected failing fixture to exit non-zero" exit 1 fi printf '%s' "$FAIL_OUTPUT" | grep -q 'success_rate=57.14' printf '%s' "$FAIL_OUTPUT" | grep -q 'precondition_missing=1' printf '%s' "$FAIL_OUTPUT" | grep -q 'external_provider_failure=1' printf '%s' "$FAIL_OUTPUT" | grep -q 'collector_runtime_failure=1' printf '%s' "$FAIL_OUTPUT" | grep -q 'sample_1 created_at=2026-05-15 20:00:00' FIXTURE_PASS="$TMP_DIR/collector_stats_pass.tsv" cat > "$FIXTURE_PASS" <<'EOF' openrouter t 2026-05-15 20:00:00 openrouter t 2026-05-15 19:59:00 openrouter t 2026-05-15 19:58:00 openrouter t 2026-05-15 19:57:00 openrouter t 2026-05-15 19:56:00 openrouter t 2026-05-15 19:55:00 openrouter t 2026-05-15 19:54:00 EOF PASS_OUTPUT="$(bash scripts/collector_stats_window_audit.sh --input "$FIXTURE_PASS" --limit 7 --assert-success-rate 95 2>&1)" printf '%s' "$PASS_OUTPUT" | grep -q 'success_rate=100.00' printf '%s' "$PASS_OUTPUT" | grep -q 'failure_count=0' printf '%s' "$PASS_OUTPUT" | grep -q 'sample_7 created_at=2026-05-15 19:54:00'