run_go_unittest.sh 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. #!/usr/bin/env bash
  2. # Licensed to the LF AI & Data foundation under one
  3. # or more contributor license agreements. See the NOTICE file
  4. # distributed with this work for additional information
  5. # regarding copyright ownership. The ASF licenses this file
  6. # to you under the Apache License, Version 2.0 (the
  7. # "License"); you may not use this file except in compliance
  8. # with the License. You may obtain a copy of the License at
  9. #
  10. # http://www.apache.org/licenses/LICENSE-2.0
  11. #
  12. # Unless required by applicable law or agreed to in writing, software
  13. # distributed under the License is distributed on an "AS IS" BASIS,
  14. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. # See the License for the specific language governing permissions and
  16. # limitations under the License.
  17. # Exit immediately for non zero status
  18. set -e
  19. BASEDIR=$(dirname "$0")
  20. source $BASEDIR/setenv.sh
  21. if [[ $(uname -s) == "Darwin" ]]; then
  22. export MallocNanoZone=0
  23. fi
  24. # ignore MinIO,S3 unittests
  25. MILVUS_DIR="${ROOT_DIR}/internal/"
  26. PKG_DIR="${ROOT_DIR}/pkg/"
  27. echo "Running go unittest under $MILVUS_DIR & $PKG_DIR"
  28. TEST_ALL=1
  29. TEST_TAG="ALL"
  30. while getopts "t:h" arg; do
  31. case $arg in
  32. t)
  33. TEST_ALL=0
  34. TEST_TAG=$OPTARG
  35. ;;
  36. h) # help
  37. echo "
  38. parameter:
  39. -t: test tag(default: all)
  40. -h: help
  41. usage:
  42. ./go_run_unittest.sh -t \${TEST_TAG}
  43. "
  44. exit 0
  45. ;;
  46. ?)
  47. echo "ERROR! unknown argument"
  48. exit 1
  49. ;;
  50. esac
  51. done
  52. function test_proxy()
  53. {
  54. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/proxy/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  55. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/distributed/proxy/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  56. }
  57. function test_querynode()
  58. {
  59. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/querynodev2/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  60. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/distributed/querynode/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  61. }
  62. function test_kv()
  63. {
  64. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/kv/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  65. }
  66. function test_mq()
  67. {
  68. go test -race -cover -tags dynamic,test $(go list "${MILVUS_DIR}/mq/..." | grep -v kafka) -failfast -count=1 -ldflags="-r ${RPATH}"
  69. }
  70. function test_storage()
  71. {
  72. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/storage" -failfast -count=1 -ldflags="-r ${RPATH}"
  73. }
  74. function test_allocator()
  75. {
  76. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/allocator/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  77. }
  78. function test_tso()
  79. {
  80. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/tso/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  81. }
  82. function test_util()
  83. {
  84. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/funcutil/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  85. pushd pkg
  86. go test -race -cover -tags dynamic,test "${PKG_DIR}/util/retry/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  87. popd
  88. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/sessionutil/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  89. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/typeutil/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  90. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/importutilv2/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  91. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/proxyutil/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  92. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/initcore/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  93. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/cgo/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  94. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/streamingutil/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  95. }
  96. function test_pkg()
  97. {
  98. pushd pkg
  99. go test -race -cover -tags dynamic,test "${PKG_DIR}/common/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  100. go test -race -cover -tags dynamic,test "${PKG_DIR}/config/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  101. go test -race -cover -tags dynamic,test "${PKG_DIR}/log/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  102. go test -race -cover -tags dynamic,test "${PKG_DIR}/mq/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  103. go test -race -cover -tags dynamic,test "${PKG_DIR}/tracer/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  104. go test -race -cover -tags dynamic,test "${PKG_DIR}/util/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  105. go test -race -cover -tags dynamic,test "${PKG_DIR}/streaming/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  106. popd
  107. }
  108. function test_datanode
  109. {
  110. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/datanode/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  111. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/distributed/datanode/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  112. }
  113. function test_indexnode()
  114. {
  115. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/indexnode/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  116. }
  117. function test_rootcoord()
  118. {
  119. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/distributed/rootcoord/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  120. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/rootcoord" -failfast -ldflags="-r ${RPATH}"
  121. }
  122. function test_datacoord()
  123. {
  124. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/distributed/datacoord/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  125. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/datacoord/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  126. }
  127. function test_querycoord()
  128. {
  129. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/distributed/querycoord/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  130. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/querycoordv2/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  131. }
  132. function test_metastore()
  133. {
  134. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/metastore/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  135. }
  136. function test_cmd()
  137. {
  138. go test -race -cover -tags dynamic,test "${ROOT_DIR}/cmd/tools/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  139. }
  140. function test_streaming()
  141. {
  142. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/streamingcoord/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  143. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/streamingnode/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  144. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/util/streamingutil/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  145. go test -race -cover -tags dynamic,test "${MILVUS_DIR}/distributed/streaming/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  146. pushd pkg
  147. go test -race -cover -tags dynamic,test "${PKG_DIR}/streaming/..." -failfast -count=1 -ldflags="-r ${RPATH}"
  148. popd
  149. }
  150. function test_all()
  151. {
  152. test_proxy
  153. test_querynode
  154. test_datanode
  155. test_indexnode
  156. test_rootcoord
  157. test_querycoord
  158. test_datacoord
  159. test_kv
  160. test_mq
  161. test_storage
  162. test_allocator
  163. test_tso
  164. test_util
  165. test_pkg
  166. test_metastore
  167. test_cmd
  168. test_streaming
  169. }
  170. case "${TEST_TAG}" in
  171. proxy)
  172. test_proxy
  173. ;;
  174. querynode)
  175. test_querynode
  176. ;;
  177. datanode)
  178. test_datanode
  179. ;;
  180. indexnode)
  181. test_indexnode
  182. ;;
  183. rootcoord)
  184. test_rootcoord
  185. ;;
  186. querycoord)
  187. test_querycoord
  188. ;;
  189. datacoord)
  190. test_datacoord
  191. ;;
  192. kv)
  193. test_kv
  194. ;;
  195. mq)
  196. test_mq
  197. ;;
  198. storage)
  199. test_storage
  200. ;;
  201. allocator)
  202. test_allocator
  203. ;;
  204. tso)
  205. test_tso
  206. ;;
  207. config)
  208. test_config
  209. ;;
  210. util)
  211. test_util
  212. ;;
  213. pkg)
  214. test_pkg
  215. ;;
  216. metastore)
  217. test_metastore
  218. ;;
  219. cmd)
  220. test_cmd
  221. ;;
  222. streaming)
  223. test_streaming
  224. ;;
  225. *) echo "Test All";
  226. test_all
  227. ;;
  228. esac
  229. echo " Go unittest finished"