mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2026-04-23 00:17:25 +08:00
46664985fc
fix cov report
90 lines
2.7 KiB
Bash
90 lines
2.7 KiB
Bash
#!/bin/bash
|
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
run_path="$DIR/../tests/"
|
|
export PYTEST_INI="$DIR/../tests/cov_pytest.ini"
|
|
|
|
export COVERAGE_FILE=${COVERAGE_FILE:-$DIR/../coveragedata/.coverage}
|
|
export COVERAGE_RCFILE=${COVERAGE_RCFILE:-$DIR/../scripts/.coveragerc}
|
|
export COVERAGE_PROCESS_START=${COVERAGE_PROCESS_START:-$DIR/../scripts/.coveragerc}
|
|
cd "$run_path" || exit 1
|
|
|
|
failed_tests_file="failed_tests.log"
|
|
> "$failed_tests_file"
|
|
|
|
##################################
|
|
# 执行特殊单测case(不符合unittest/pytest格式)
|
|
##################################
|
|
special_tests=(
|
|
"graph_optimization/test_cuda_graph_dynamic_subgraph.py"
|
|
"graph_optimization/test_cuda_graph_spec_decode.py"
|
|
"layers/test_quant_layer.py"
|
|
"operators/test_token_penalty.py"
|
|
"operators/test_split_fuse.py"
|
|
"operators/test_flash_mask_attn.py"
|
|
"operators/test_w4afp8_gemm.py"
|
|
"model_loader/test_load_ernie_vl.py"
|
|
"operators/test_tree_mask.py"
|
|
)
|
|
|
|
failed_special=0
|
|
success_special=0
|
|
|
|
for test_file in "${special_tests[@]}"; do
|
|
if [ -f "$test_file" ]; then
|
|
echo "Running special test: $test_file"
|
|
python -m coverage run --parallel-mode "$test_file"
|
|
status=$?
|
|
if [ "$status" -ne 0 ]; then
|
|
echo "$test_file" >> "$failed_tests_file"
|
|
failed_special=$((failed_special+1))
|
|
else
|
|
success_special=$((success_special+1))
|
|
fi
|
|
else
|
|
echo "Warning: $test_file not found"
|
|
failed_special=$((failed_special+1))
|
|
fi
|
|
done
|
|
|
|
##################################
|
|
# 执行 pytest,每个文件单独跑
|
|
##################################
|
|
# 收集 pytest 文件
|
|
TEST_FILES=$(python -m pytest --collect-only -q -c ${PYTEST_INI} --disable-warnings | grep -Eo '^.*test_.*\.py' | sort | uniq)
|
|
|
|
|
|
failed_pytest=0
|
|
success_pytest=0
|
|
|
|
for file in $TEST_FILES; do
|
|
echo "Running pytest file: $file"
|
|
python -m pytest -c ${PYTEST_INI} --cov-config=${COVERAGE_RCFILE} "$file" -vv -s
|
|
status=$?
|
|
if [ "$status" -ne 0 ]; then
|
|
echo "$file" >> "$failed_tests_file"
|
|
failed_pytest=$((failed_pytest+1))
|
|
else
|
|
success_pytest=$((success_pytest+1))
|
|
fi
|
|
done
|
|
|
|
##################################
|
|
# 汇总结果
|
|
##################################
|
|
echo "===================================="
|
|
echo "Pytest total: $((failed_pytest + success_pytest))"
|
|
echo "Pytest successful: $success_pytest"
|
|
echo "Pytest failed: $failed_pytest"
|
|
|
|
echo "Special tests total: ${#special_tests[@]}"
|
|
echo "Special tests successful: $success_special"
|
|
echo "Special tests failed: $failed_special"
|
|
|
|
if [ "$failed_pytest" -ne 0 ] || [ "$failed_special" -ne 0 ]; then
|
|
echo "Failed test cases are listed in $failed_tests_file"
|
|
cat "$failed_tests_file"
|
|
exit 8
|
|
fi
|
|
|
|
echo "All tests passed!"
|