| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | #!/bin/bashFAIL=0XRAY_OUT=${PWD}/out/xrayexport XRAY_COV=${XRAY_OUT}/covCOVERAGE_FILE=${XRAY_COV}/coverage.txtfunction test_package {  DIR=".$1"  DEP=$(go list -f '{{ join .Deps "\n" }}' $DIR | grep xray | tr '\n' ',')  DEP=${DEP}$DIR  RND_NAME=$(openssl rand -hex 16)  COV_PROFILE=${XRAY_COV}/${RND_NAME}.out  go test -tags "json coverage" -coverprofile=${COV_PROFILE} -coverpkg=$DEP $DIR || FAIL=1}rm -rf ${XRAY_OUT}mkdir -p ${XRAY_COV}touch ${COVERAGE_FILE}TEST_FILES=(./*_test.go)if [ -f ${TEST_FILES[0]} ]; then  test_package ""fifor DIR in $(find * -type d ! -path "*.git*" ! -path "*vendor*" ! -path "*external*"); do  TEST_FILES=($DIR/*_test.go)  if [ -f ${TEST_FILES[0]} ]; then    test_package "/$DIR"  fidonefor OUT_FILE in $(find ${XRAY_COV} -name "*.out"); do  echo "Merging file ${OUT_FILE}"  cat ${OUT_FILE} | grep -v "mode: set" >> ${COVERAGE_FILE}doneCOV_SORTED=${XRAY_COV}/coverallsorted.outcat ${COVERAGE_FILE} | sort -t: -k1 | grep -vw "testing" | grep -v ".pb.go" | grep -vw "vendor" | grep -vw "external" > ${COV_SORTED}echo "mode: set" | cat - ${COV_SORTED} > ${COVERAGE_FILE}if [ "$FAIL" -eq 0 ]; then  echo "Uploading coverage datea to codecov."  #bash <(curl -s https://codecov.io/bash) -f ${COVERAGE_FILE} -v || echo "Codecov did not collect coverage reports."fiexit $FAIL
 |