Add unit test run and coverage report generation (#3011)

* Add unit test run and coverage report generation

* fix

* fix: upload coverage report failure

* fix

* update

* fix

* fix

* update
This commit is contained in:
YUNSHEN XIE
2025-07-27 22:48:34 +08:00
committed by GitHub
parent 1d29dd80f7
commit fb410b5f4c
6 changed files with 345 additions and 3 deletions

73
scripts/coverage_run.sh Normal file
View File

@@ -0,0 +1,73 @@
#!/bin/bash
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo "$DIR"
run_path="$DIR/../test/"
cd ${run_path}
ls
dirs=("layers" "operators" "worker")
failed_tests_file="failed_tests.log"
> "$failed_tests_file"
disabled_tests=(
layers/test_sampler.py
layers/test_append_attention.py
layers/test_attention.py
operators/test_rejection_top_p_sampling.py
operators/test_perchannel_gemm.py
operators/test_scaled_gemm_f8_i4_f16.py
operators/test_topp_sampling.py
operators/test_stop_generation.py
operators/test_air_topp_sampling.py
operators/test_fused_moe.py
)
is_disabled() {
local test_file_rel="$1"
for disabled in "${disabled_tests[@]}"; do
if [[ "$test_file_rel" == "$disabled" ]]; then
return 0
fi
done
return 1
}
total=0
fail=0
success=0
for dir in "${dirs[@]}"; do
if [ -d "$dir" ]; then
echo "Running tests in directory: $dir"
while IFS= read -r -d '' test_file; do
total=$((total + 1))
echo "Running $test_file"
if is_disabled "$test_file"; then
echo "Skipping disabled test: $test_file"
continue
fi
python -m coverage run "$test_file"
if [ $? -ne 0 ]; then
echo "$test_file" >> "$failed_tests_file"
fail=$((fail + 1))
else
success=$((success + 1))
fi
done < <(find "$dir" -type f -name "test_*.py" -print0)
else
echo "Directory $dir not found, skipping."
fi
done
echo "===================================="
echo "Total test files run: $total"
echo "Successful tests: $success"
echo "Failed tests: $fail"
echo "Failed test cases are listed in $failed_tests_file"
if [ "$fail" -ne 0 ]; then
echo "Failed test cases:"
cat "$failed_tests_file"
exit 8
fi