summaryrefslogtreecommitdiff
path: root/hack/lib/golang.sh
diff options
context:
space:
mode:
authorzhangjie <iamkadisi@163.com>2020-02-05 13:12:08 +0800
committerzhangjie <iamkadisi@163.com>2020-02-18 16:12:24 +0800
commit4dcd54b5087f17ddaf0b4f8e09bf521dec0614e2 (patch)
tree172a30b958735fe0859742f8890eae9d8587c0cb /hack/lib/golang.sh
parentuse bash to build kubeedge components, and use WHAT param (diff)
downloadkubeedge-4dcd54b5087f17ddaf0b4f8e09bf521dec0614e2.tar.gz
support make test
Signed-off-by: zhangjie <iamkadisi@163.com>
Diffstat (limited to 'hack/lib/golang.sh')
-rw-r--r--hack/lib/golang.sh71
1 files changed, 71 insertions, 0 deletions
diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh
index 4786e71bf..26d2505b3 100644
--- a/hack/lib/golang.sh
+++ b/hack/lib/golang.sh
@@ -236,3 +236,74 @@ kubeedge::golang::place_bins() {
mv -f "${GOPATH}/bin/${name}" ${KUBEEDGE_OUTPUT_BINPATH}
done
}
+
+kubeedge::golang::get_cloud_test_dirs() {
+ (
+ local findDirs
+ local -a dirArray
+ cd ${KUBEEDGE_ROOT}
+ findDirs=$(find -L ./cloud -not \( \
+ \( \
+ -path './cloud/test/integration/*' \
+ \) -prune \
+ \) -name '*_test.go' -print0 | xargs -0n1 dirname | LC_ALL=C sort -u)
+ dirArray=(${findDirs// /})
+ echo "${dirArray[@]}"
+ )
+}
+
+kubeedge::golang::get_edge_test_dirs() {
+ (
+ local findDirs
+ local -a dirArray=()
+ cd ${KUBEEDGE_ROOT}
+ findDirs=$(find "./edge/pkg" -name "*_test.go"| xargs -I{} dirname {} | uniq)
+ dirArray=(${findDirs// /})
+ echo "${dirArray[@]}"
+ )
+}
+
+read -ra KUBEEDGE_CLOUD_TESTCASES <<< "$(kubeedge::golang::get_cloud_test_dirs)"
+read -ra KUBEEDGE_EDGE_TESTCASES <<< "$(kubeedge::golang::get_edge_test_dirs)"
+
+readonly KUBEEDGE_ALL_TESTCASES=(
+ ${KUBEEDGE_CLOUD_TESTCASES[@]}
+ ${KUBEEDGE_EDGE_TESTCASES[@]}
+)
+
+ALL_COMPONENTS_AND_GETTESTDIRS_FUNCTIONS=(
+ cloud::::kubeedge::golang::get_cloud_test_dirs
+ edge::::kubeedge::golang::get_edge_test_dirs
+)
+
+kubeedge::golang::get_testdirs_by_component() {
+ local key=$1
+ for ct in "${ALL_COMPONENTS_AND_GETTESTDIRS_FUNCTIONS[@]}" ; do
+ local component="${ct%%::::*}"
+ if [ "${component}" == "${key}" ]; then
+ local testcases="${ct##*::::}"
+ echo $(eval $testcases)
+ return
+ fi
+ done
+ echo "can not find component: $key"
+ exit 1
+}
+
+kubeedge::golang::run_test() {
+ echo "running tests cases $@"
+
+ cd ${KUBEEDGE_ROOT}
+
+ local -a testdirs=()
+ local binArg
+ for binArg in "$@"; do
+ testdirs+=("$(kubeedge::golang::get_testdirs_by_component $binArg)")
+ done
+
+ if [[ ${#testdirs[@]} -eq 0 ]]; then
+ testdirs+=("${KUBEEDGE_ALL_TESTCASES[@]}")
+ fi
+
+ go test ${testdirs[@]}
+}