2021-04-24 07:10:24 +00:00
#!/usr/bin/env bash
2021-10-09 10:01:27 +00:00
# Licensed to the LF AI & Data foundation under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
2021-10-01 12:28:33 +00:00
FILE_COVERAGE_INFO = "go_coverage.txt"
FILE_COVERAGE_HTML = "go_coverage.html"
2022-04-12 11:47:33 +00:00
set -ex
2021-10-01 12:28:33 +00:00
echo "mode: atomic" > ${ FILE_COVERAGE_INFO }
2021-04-24 07:10:24 +00:00
2022-06-24 13:12:15 +00:00
SOURCE = " ${ BASH_SOURCE [0] } "
while [ -h " $SOURCE " ] ; do # resolve $SOURCE until the file is no longer a symlink
DIR = " $( cd -P " $( dirname " $SOURCE " ) " && pwd ) "
SOURCE = " $( readlink " $SOURCE " ) "
[ [ $SOURCE != /* ] ] && SOURCE = " $DIR / $SOURCE " # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
ROOT_DIR = " $( cd -P " $( dirname " $SOURCE " ) /.. " && pwd ) "
export PKG_CONFIG_PATH = " ${ PKG_CONFIG_PATH } : $ROOT_DIR /internal/core/output/lib/pkgconfig: $ROOT_DIR /internal/core/output/lib64/pkgconfig "
export RPATH = $( pkg-config --libs-only-L milvus_common | cut -c 3-)
2021-10-03 09:48:10 +00:00
# run unittest
2021-10-06 11:26:54 +00:00
echo "Running unittest under ./internal"
2022-04-20 15:03:41 +00:00
if [ [ $( uname -s) = = "Darwin" && " $( uname -m) " = = "arm64" ] ] ; then
APPLE_SILICON_FLAG = "-tags dynamic"
2022-02-09 06:27:46 +00:00
fi
2022-05-06 09:43:51 +00:00
for d in $( go list ./internal/... | grep -v -e vendor -e kafka -e planparserv2/generated) ; do
2022-06-24 13:12:15 +00:00
go test -race ${ APPLE_SILICON_FLAG } -ldflags= " -r $RPATH " -v -coverpkg= ./... -coverprofile= profile.out -covermode= atomic " $d "
2022-04-20 15:03:41 +00:00
if [ -f profile.out ] ; then
2022-05-06 09:43:51 +00:00
grep -v kafka profile.out | grep -v planparserv2/generated | sed '1d' >> ${ FILE_COVERAGE_INFO }
2022-04-20 15:03:41 +00:00
rm profile.out
fi
done
2021-09-22 08:01:53 +00:00
2021-10-03 09:48:10 +00:00
# generate html report
2021-10-01 12:28:33 +00:00
go tool cover -html= ./${ FILE_COVERAGE_INFO } -o ./${ FILE_COVERAGE_HTML }
2021-10-04 01:03:55 +00:00
echo " Generate go coverage report to ${ FILE_COVERAGE_HTML } "