Files
qiming/qiming-rcoder/make/test.mk
2026-06-01 13:54:52 +08:00

91 lines
3.7 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================================
# 测试命令
# ============================================================================
# 运行所有测试
test:
@echo "🧪 运行所有测试..."
@cargo test --workspace
# 运行单元测试
test-unit:
@echo "🧪 运行单元测试..."
@cargo test --workspace --lib
# 运行集成测试
test-integration:
@echo "🧪 运行集成测试..."
@cargo test --workspace --test '*'
# 运行极端场景测试(包含阻塞)
test-blocking:
@echo "🧪 运行极端场景测试(包含阻塞)..."
@cargo test --workspace --features testing --test '*_blocking*' -- --test-threads=1
# 运行完整测试套件
test-all:
@echo "🧪 运行完整测试套件..."
@cargo test --workspace --all-features
# ============================================================================
# 🧪 eBPF 工具安装测试(快速验证 Makefile 变量传递)
# ============================================================================
# 测试 1: 模拟 Makefile 变量传递(启用 eBPF
test-ebpf-install:
@echo "🧪 测试 1: 启用 eBPF 工具安装..."
@(if [ "$(CARGO_FEATURES)" != "" ]; then \
INSTALL_EBPF="true"; \
echo "✅ CARGO_FEATURES=[$(CARGO_FEATURES)], INSTALL_EBPF=$${INSTALL_EBPF}"; \
else \
INSTALL_EBPF="false"; \
echo "⚠️ CARGO_FEATURES=[$(CARGO_FEATURES)], INSTALL_EBPF=$${INSTALL_EBPF}"; \
fi; \
cd docker/rcoder-agent-runner && \
docker build --build-arg INSTALL_EBPF_TOOLS="$${INSTALL_EBPF}" \
-f Dockerfile.test -t test-ebpf-install . 2>&1 | tail -20; \
docker run --rm test-ebpf-install which bpftrace && echo "✅ 测试通过: bpftrace 已安装" || echo "❌ 测试失败: bpftrace 未安装")
# 测试 2: 模拟生产模式(禁用 eBPF
test-ebpf-no-install:
@echo "🧪 测试 2: 禁用 eBPF 工具安装(生产模式)..."
@(INSTALL_EBPF="false"; \
echo "🔒 INSTALL_EBPF=$${INSTALL_EBPF}"; \
cd docker/rcoder-agent-runner && \
docker build --build-arg INSTALL_EBPF_TOOLS="$${INSTALL_EBPF}" \
-f Dockerfile.test -t test-ebpf-no-install . 2>&1 | tail -20; \
docker run --rm test-ebpf-no-install which bpftrace && echo "❌ 测试失败: 生产模式不应安装 bpftrace" || echo "✅ 测试通过: 生产模式正确跳过安装")
# 测试 3: 直接测试变量传递(调试用)
test-ebpf-debug:
@echo "🧪 测试 3: 变量传递调试..."
@echo "CARGO_FEATURES=[$(CARGO_FEATURES)]"
@(if [ "$(CARGO_FEATURES)" != "" ]; then \
INSTALL_EBPF="true"; \
echo "Shell: INSTALL_EBPF=$${INSTALL_EBPF}"; \
echo "Docker: INSTALL_EBPF_TOOLS=\"$${INSTALL_EBPF}\""; \
else \
INSTALL_EBPF="false"; \
echo "Shell: INSTALL_EBPF=$${INSTALL_EBPF}"; \
echo "Docker: INSTALL_EBPF_TOOLS=\"$${INSTALL_EBPF}\""; \
fi)
# 测试 4: 完整测试 Pyroscope + Off-CPU 工具
test-pyroscope-offcpu:
@echo "🧪 测试 4: Pyroscope Agent + Off-CPU 工具完整测试..."
@(if [ "$(CARGO_FEATURES)" != "" ]; then \
INSTALL_EBPF="true"; \
echo "✅ CARGO_FEATURES=[$(CARGO_FEATURES)], INSTALL_EBPF=$${INSTALL_EBPF}"; \
else \
INSTALL_EBPF="false"; \
echo "⚠️ CARGO_FEATURES=[$(CARGO_FEATURES)], INSTALL_EBPF=$${INSTALL_EBPF}"; \
fi; \
cd docker/rcoder-agent-runner && \
docker build --build-arg INSTALL_EBPF_TOOLS="$${INSTALL_EBPF}" \
--build-arg INSTALL_PYROSCOPE="$${INSTALL_EBPF}" \
-f Dockerfile.test-full -t test-pyroscope-offcpu . 2>&1 | tail -30; \
echo "=== 验证 pyroscope ===" && \
docker run --rm test-pyroscope-offcpu which pyroscope && echo "✅ pyroscope 已安装" || echo "❌ pyroscope 未安装"; \
echo "=== 验证 offcputime-bpfcc ===" && \
docker run --rm test-pyroscope-offcpu which offcputime-bpfcc && echo "✅ offcputime-bpfcc 已安装" || echo "❌ offcputime-bpfcc 未安装")