Repository navigation
Expand file tree
/
Copy pathrun-tests.sh
More file actions
executable file
·60 lines (51 loc) · 2.5 KB
/
Copy pathrun-tests.sh
File metadata and controls
executable file
·60 lines (51 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env bash
# 应用性能集成测试 — open-source release gate C (API regression).
#
# Release gates A/B/C are complementary; none substitutes for another:
# A: deploy/test/doris-failover-e2e.sh — install-time Doris failure
# B: deploy/test/doris-runtime-failover-e2e.sh — runtime outage → ops expert
# C (this script): API regression
# Ops docs: docs/运维参考/Docker运维.md 「发布验收 / Release gate」
#
# Usage:
# ./run-tests.sh # 应用性能 API 回归;默认跳过 AI(请用 ./ai-tests.sh)
# TEST_SKIP_AI_ALL=0 ./run-tests.sh # 开发态:把 AI 串进本进程(发版勿用)
# TEST_SKIP_AI_CHAT=1 ./run-tests.sh # 仅在 TEST_SKIP_AI_ALL=0 时有意义
# TEST_SKIP_AI_MEMORY=1 ./run-tests.sh
# TEST_SKIP_AI_PROVIDER_FORMATS=1 ./run-tests.sh
# TEST_SKIP_AI_BRAIN_ASYNC=1 ./run-tests.sh
# TEST_SKIP_AI_ALL=0 DEEPSEEK_API_KEY=sk-... MINIMAX_API_KEY=... ./run-tests.sh
set -euo pipefail
TEST_DIR="$(cd "$(dirname "$0")" && pwd)"
export TEST_BASE_URL="${TEST_BASE_URL:-http://127.0.0.1:${WEB_HTTP_PORT:-27403}}"
export TEST_QUERY_WINDOW_MS="${TEST_QUERY_WINDOW_MS:-300000}"
export TEST_DEMO_SERVICE="${TEST_DEMO_SERVICE:-service-a}"
# Default: skip every AI suite embedded in run_tests.py (unset == skip).
# Opt in with TEST_SKIP_AI_ALL=0; dedicated runner is ./ai-tests.sh.
if [[ "${TEST_SKIP_AI_ALL:-1}" == "1" ]]; then
export TEST_SKIP_AI_CHAT=1
export TEST_SKIP_AI_MEMORY=1
export TEST_SKIP_AI_PROVIDER_FORMATS=1
export TEST_SKIP_AI_BRAIN_ASYNC=1
echo "[run-tests] skip AI (default; TEST_SKIP_AI_ALL=0 to embed, or ./ai-tests.sh)"
else
export TEST_SKIP_AI_CHAT="${TEST_SKIP_AI_CHAT:-0}"
export TEST_SKIP_AI_MEMORY="${TEST_SKIP_AI_MEMORY:-0}"
export TEST_SKIP_AI_PROVIDER_FORMATS="${TEST_SKIP_AI_PROVIDER_FORMATS:-0}"
export TEST_SKIP_AI_BRAIN_ASYNC="${TEST_SKIP_AI_BRAIN_ASYNC:-0}"
fi
TEST_LIB_DIR="${TEST_DIR}/lib"
REPORT_DIR="${TEST_LIB_DIR}/reports"
if [[ "${1:-}" == "--snapshot" || "${1:-}" == "snapshot" ]]; then
echo "[run-tests] ERROR: --snapshot is disabled; expected/*.json must not be auto-overwritten." >&2
echo "[run-tests] Edit expected files manually (use json_assert matchers like \$range)." >&2
exit 1
fi
export TEST_WARMUP_SECONDS="${TEST_WARMUP_SECONDS:-240}"
echo "[run-tests] base=${TEST_BASE_URL}"
python3 "${TEST_LIB_DIR}/run_tests.py" --report-dir "${REPORT_DIR}" "$@"
status=$?
if [ -f "${REPORT_DIR}/report-latest.html" ]; then
echo "[run-tests] report: ${REPORT_DIR}/report-latest.html"
fi
exit "${status}"