diff --git a/.test.mk b/.test.mk index 3405824567cf41b79c8a580b5a3bdfd0f5a21d57..aba01ae8dd5bfd4a684bef3473e2c4ca71283f10 100644 --- a/.test.mk +++ b/.test.mk @@ -262,6 +262,40 @@ test-jepsen: CMAKE_PARAMS = -DCMAKE_BUILD_TYPE=RelWithDebInfo \ test-jepsen: configure prebuild-jepsen ${CMAKE_BUILD} --target run-jepsen +############################## +# Coverity testing # +############################## + +.PHONY: build-coverity +build-coverity: CMAKE_PARAMS = -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DENABLE_WERROR=ON \ + -DTEST_BUILD=ON +build-coverity: CMAKE_BUILD_ENV = PATH=${PATH}:/cov-analysis/bin cov-build --dir ${COVERITY_DIR} +build-coverity: configure + ${CMAKE_BUILD} + +.PHONY: test-coverity +test-coverity: build-coverity + tar czvf tarantool.tgz ${COVERITY_DIR} + if [ -n "$${COVERITY_TOKEN}" ]; then \ + echo "Exporting code coverity information to scan.coverity.com"; \ + curl --location \ + --fail \ + --silent \ + --show-error \ + --retry 5 \ + --retry-delay 5 \ + --form token=$${COVERITY_TOKEN} \ + --form email=tarantool@tarantool.org \ + --form file=@tarantool.tgz \ + --form version=$(shell git describe HEAD) \ + --form description="Tarantool Coverity" \ + ${COVERITY_URL}; \ + else \ + echo "Coverity token is not provided"; \ + exit 1; \ + fi + ############################## # LuaJIT integration testing # ############################## diff --git a/CMakeLists.txt b/CMakeLists.txt index 50c167ee9a8d41214a622e7c8a20b4e39c1aad3d..c61ccb317131463e73d7be94dc10f693ee10c458 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -521,33 +521,37 @@ else() endif() # Download GLAuth, a LDAP server used in tests -message(STATUS "Downloading GLAuth for tests") -if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64") - set(GLAUTH_URL https://github.com/glauth/glauth/releases/download/v2.2.0/glauth-linux-amd64) - set(GLAUTH_HASH 823b4403b87e0294ca921651694b57ca) - elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "aarch64") - set(GLAUTH_URL https://github.com/glauth/glauth/releases/download/v2.2.0/glauth-linux-arm64) - set(GLAUTH_HASH c3e749a34f54e82597e7b4cd7efeae42) - else() - message(WARNING "Failed to download GLAuth: unsupported platform ${CMAKE_HOST_SYSTEM_PROCESSOR}") - endif() -elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") - if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64") - set(GLAUTH_URL https://github.com/glauth/glauth/releases/download/v2.2.0/glauth-darwin-amd64) - set(GLAUTH_HASH 19b3a8d83d6b258508df626cd1ff3f46) - elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "arm64") - set(GLAUTH_URL https://github.com/glauth/glauth/releases/download/v2.2.0/glauth-darwin-arm64) - set(GLAUTH_HASH 45b9f2ff7a27ca1cc2b53910f0c89c67) +option(ENABLE_GLAUTH_DOWNLOAD "Download GLAuth for ldap tests" OFF) +if(ENABLE_GLAUTH_DOWNLOAD) + message(STATUS "Downloading GLAuth for tests") + set(GLAUTH_URL_PREFIX https://github.com/glauth/glauth/releases/download/v2.2.0) + if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64") + set(GLAUTH_URL ${GLAUTH_URL_PREFIX}/glauth-linux-amd64) + set(GLAUTH_HASH 823b4403b87e0294ca921651694b57ca) + elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "aarch64") + set(GLAUTH_URL ${GLAUTH_URL_PREFIX}/glauth-linux-arm64) + set(GLAUTH_HASH c3e749a34f54e82597e7b4cd7efeae42) + else() + message(WARNING "Failed to download GLAuth: unsupported platform ${CMAKE_HOST_SYSTEM_PROCESSOR}") + endif() + elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + if(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64") + set(GLAUTH_URL ${GLAUTH_URL_PREFIX}/glauth-darwin-amd64) + set(GLAUTH_HASH 19b3a8d83d6b258508df626cd1ff3f46) + elseif(${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "arm64") + set(GLAUTH_URL ${GLAUTH_URL_PREFIX}/glauth-darwin-arm64) + set(GLAUTH_HASH 45b9f2ff7a27ca1cc2b53910f0c89c67) + else() + message(WARNING "Failed to download GLAuth: unsupported platform ${CMAKE_HOST_SYSTEM_PROCESSOR}") + endif() else() - message(WARNING "Failed to download GLAuth: unsupported platform ${CMAKE_HOST_SYSTEM_PROCESSOR}") + message(WARNING "Failed to download GLAuth: unsupported OS ${CMAKE_SYSTEM_NAME}") endif() -else() - message(WARNING "Failed to download GLAuth: unsupported OS") + set(GLAUTH_BIN ${CMAKE_BINARY_DIR}/glauth) + file(DOWNLOAD ${GLAUTH_URL} ${GLAUTH_BIN} EXPECTED_MD5 ${GLAUTH_HASH} SHOW_PROGRESS) + execute_process(COMMAND chmod 770 ${GLAUTH_BIN}) endif() -set(GLAUTH_BIN ${CMAKE_BINARY_DIR}/glauth) -file(DOWNLOAD ${GLAUTH_URL} ${GLAUTH_BIN} EXPECTED_MD5 ${GLAUTH_HASH} SHOW_PROGRESS) -execute_process(COMMAND chmod 770 ${GLAUTH_BIN}) # # Curl