diff --git a/entrypoint.sh b/entrypoint.sh index 3e5161b..afc95b3 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -85,7 +85,8 @@ while true ; do ;; -h|--help) echo "Options:" - echo " --test-run=VALUE Run selected test or ALL, NONE" + echo " --test-run=VALUE Run selected test or ALL, NONE," + echo " IMPLEMENTS" echo " ALL is the default" echo " --test-bench=VALUE Run selected benchmarks" echo " --test-pkg=PKG Run only tests from PKG" @@ -239,13 +240,9 @@ pre_all_tests() { echo "mode: count" > "cover.out" } -post_all_tests() { - if [[ ${COVERAGE} = yes ]]; then - mkdir -p "${RESULTS_DIR}/coverage" - show go tool cover -html=cover.out -o "${RESULTS_DIR}/coverage/go-ceph.html" - fi - if [[ ${COVERAGE} = yes ]] && command -v castxml >/dev/null ; then - mkdir -p "${RESULTS_DIR}/coverage" +implements_tool() { + if command -v castxml >/dev/null ; then + mkdir -p "${RESULTS_DIR}" show ./implements --list \ --report-json "${RESULTS_DIR}/implements.json" \ --report-text "${RESULTS_DIR}/implements.txt" \ @@ -255,6 +252,16 @@ post_all_tests() { fi } +post_all_tests() { + if [[ ${COVERAGE} = yes ]]; then + mkdir -p "${RESULTS_DIR}/coverage" + show go tool cover -html=cover.out -o "${RESULTS_DIR}/coverage/go-ceph.html" + fi + if [[ ${COVERAGE} = yes ]]; then + implements_tool + fi +} + test_go_ceph() { mkdir -p /tmp/ceph if ! [[ ${WAIT_FILES} ]]; then @@ -266,6 +273,12 @@ test_go_ceph() { echo "skipping test execution" return 0 fi + if [[ ${TEST_RUN} == IMPLEMENTS ]]; then + echo "skipping tests, executing implements tool" + pre_all_tests + implements_tool + return $? + fi PKG_PREFIX=github.com/ceph/go-ceph pkgs=$(go list ./... | sed -e "s,^${PKG_PREFIX}/\?,," | grep -v ^contrib)