open-cluster-management.io/governance-policy-propagator@v0.13.0/build/common/scripts/coverage_calc.sh (about) 1 #! /bin/bash 2 3 set -e 4 5 COVERAGE_MIN=${COVERAGE_MIN:-60} 6 7 COVERAGE_FILE_UNIT="coverage_unit.out" 8 COVERAGE_FILE_E2E="coverage_e2e.out" 9 COVERAGE_FILE="coverage.out" 10 11 get_coverage () { 12 go tool cover -func=${1} 2>/dev/null | awk '/total:/ {print $3}' 13 } 14 15 print_coverage () { 16 printf "%s\t%s\n" "${1}" "${2}" 17 } 18 19 # Merge coverage files from Unit and E2E tests 20 make coverage-merge 21 22 echo "* Coverage files found:" 23 ls -1 *.out 24 25 # Output total coverages 26 TOTAL_COVERAGE=$(get_coverage ${COVERAGE_FILE}) 27 28 echo "================================" 29 print_coverage "Unit Test Coverage:" "$(get_coverage ${COVERAGE_FILE_UNIT})" 30 print_coverage "E2E Test Coverage:" "$(get_coverage ${COVERAGE_FILE_E2E})" 31 echo "--------------------------------" 32 print_coverage "TOTAL Test Coverage:" "${TOTAL_COVERAGE}" 33 echo "================================" 34 35 # Validate coverage 36 if (( ${TOTAL_COVERAGE%.*} < ${COVERAGE_MIN} )); then 37 printf "\n%s\n" "ERROR: Total test coverage threshold of ${COVERAGE_MIN}% not met." 38 exit 1 39 else 40 printf "\n%s\n" "PASS: Total test coverage threshold of ${COVERAGE_MIN}% has been met." 41 fi