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