diff options
| -rwxr-xr-x | test/build/static_checkers.sh | 24 | ||||
| -rw-r--r-- | test/lib/exeter | 10 |
2 files changed, 27 insertions, 7 deletions
diff --git a/test/build/static_checkers.sh b/test/build/static_checkers.sh index 228b99a..96679fb 100755 --- a/test/build/static_checkers.sh +++ b/test/build/static_checkers.sh @@ -13,18 +13,30 @@ # Copyright Red Hat # Author: David Gibson <david@gibson.dropbear.id.au> -. $(dirname $0)/../exeter/sh/exeter.sh +. $(dirname ${0})/../exeter/sh/exeter.sh -exeter_register cppcheck make -C .. cppcheck +# do_check() - Run static checker as a test if the binary is available +# $1: Static checker (uased as both executable name and make target) +# $@: Any additional arguments required to make +do_check() { + checker="${1}" + shift + if ! which "${checker}" >/dev/null 2>/dev/null; then + exeter_skip "${checker} not available" + fi + make "${@}" "${checker}" +} + +exeter_register cppcheck do_check cppcheck -C .. exeter_set_description cppcheck "passt sources pass cppcheck" -exeter_register clang_tidy make -C .. clang-tidy +exeter_register clang_tidy do_check clang-tidy -C .. exeter_set_description clang_tidy "passt sources pass clang-tidy" -exeter_register flake8 make flake8 +exeter_register flake8 do_check flake8 exeter_set_description flake8 "passt tests in Python pass flake8" -exeter_register mypy make mypy +exeter_register mypy do_check mypy exeter_set_description mypy "passt tests in Python pass mypy --strict" -exeter_main "$@" +exeter_main "${@}" diff --git a/test/lib/exeter b/test/lib/exeter index 7ea084a..ccdb19c 100644 --- a/test/lib/exeter +++ b/test/lib/exeter @@ -49,7 +49,15 @@ exeter() { for __testid in $(${EXETOOL} list -- "${@}"); do __desc="$(${EXETOOL} desc -- "${@}" -- "${__testid}")" status_test_start "${__desc}" - context_run host "${*} '${__testid}'" && status_test_ok || status_test_fail + status=0 + context_run host "${*} '${__testid}'" || status="${?}" + if [ "${status}" = 0 ]; then + status_test_ok + elif [ "${status}" = 77 ]; then + status_test_skip + else + status_test_fail + fi done cd .. |
