github.com/NpoolPlatform/chain-middleware@v0.0.0-20240228100535-eb1bcf896eb9/hack/test-go.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  set -o errexit
     4  set -o nounset
     5  set -o pipefail
     6  
     7  REPO_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)
     8  
     9  # Default timeout is 1800s
    10  TEST_TIMEOUT=${TIMEOUT:-1800}
    11  
    12  # Write go test artifacts here
    13  ARTIFACTS=${ARTIFACTS:-"${REPO_ROOT}/tmp"}
    14  pkg=github.com/NpoolPlatform/go-service-framework/pkg/version
    15  
    16  for arg in "$@"
    17  do
    18      case $arg in
    19          -t=*|--timeout=*)
    20          TEST_TIMEOUT="${arg#*=}"
    21          shift
    22          ;;
    23          -t|--timeout)
    24          TEST_TIMEOUT="$2"
    25          shift
    26          shift
    27      esac
    28  done
    29  
    30  cd "${REPO_ROOT}"
    31  
    32  mkdir -p "${ARTIFACTS}"
    33  
    34  go_test_flags=(
    35      -v
    36      -count=1
    37      -timeout="${TEST_TIMEOUT}s"
    38      -cover -coverprofile "${ARTIFACTS}/coverage.out"
    39  )
    40  
    41  if git_status=$(git status --porcelain --untracked=no 2>/dev/null) && [[ -z "${git_status}" ]]; then
    42      git_tree_state=clean
    43  fi
    44  
    45  git_branch=`git rev-parse --abbrev-ref HEAD`
    46  set +e
    47  version=`git describe --tags --abbrev=0`
    48  if [ ! $? -eq 0 ]; then
    49      version=$git_branch
    50  fi
    51  set -e
    52  
    53  compile_date=`date -u +'%Y-%m-%dT%H:%M:%SZ'`
    54  git_revision=`git rev-parse HEAD 2>/dev/null || echo unknow`
    55  
    56  go test -ldflags "-s -w -X $pkg.buildDate=${compile_date} \
    57          -X $pkg.gitCommit=${git_revision} \
    58          -X $pkg.gitVersion=${version}     \
    59          -X $pkg.gitBranch=${git_branch}"  \
    60          -p 1 \
    61          ./... -coverprofile ${ARTIFACTS}/coverage.out
    62  
    63  go tool cover -html "${ARTIFACTS}/coverage.out" -o "${ARTIFACTS}/coverage.html"