mirror of
https://github.com/curl/curl.git
synced 2026-04-14 22:31:41 +03:00
cmake: fix clang-tidy builds to verify tests, fix fallouts
- cmake: disable test bundles for clang-tidy builds. clang-tidy ignores #included .c sources, and incompatible with unity and bundles. It caused clang-tidy ignoring all test sources. It also means this is the first time tests sources are checked with clang-tidy. (autotools doesn't run it on tests.) - cmake: update description for `CURL_TEST_BUNDLES` option. - fix tests using special `CURLE_*` enums that were missing from `curl/curl.h`. Add them as reserved codes. - fix about ~50 other issues detected by clang-tidy: unchecked results, NULL derefs, memory leaks, casts to enums, unused assigments, uninitialized `errno` uses, unchecked `open`, indent, and more. - drop unnecessary casts (lib1533, lib3207). - suppress a few impossible cases with detailed `NOLINT`s. - lib/escape.c: drop `NOLINT` no longer necessary. Follow-up to72abf7c13a#13862 (possibly) - extend two existing `NOLINT` comments with details. Follow-up tofabfa8e402#15825 Closes #16756
This commit is contained in:
parent
efa65b24ae
commit
9465327084
52 changed files with 257 additions and 179 deletions
|
|
@ -300,9 +300,14 @@ if(ENABLE_CURLDEBUG)
|
|||
list(APPEND CURL_DEBUG_MACROS "CURLDEBUG")
|
||||
endif()
|
||||
|
||||
option(CURL_TEST_BUNDLES "Build tests into single-binary bundles" OFF)
|
||||
|
||||
option(CURL_CLANG_TIDY "Run the build through clang-tidy" OFF)
|
||||
if(CURL_CLANG_TIDY)
|
||||
# clang-tidy is not looking into #included sources, thus not compatible with
|
||||
# unity builds and test bundles.
|
||||
set(CMAKE_UNITY_BUILD OFF)
|
||||
set(CURL_TEST_BUNDLES OFF)
|
||||
set(_tidy_checks "")
|
||||
list(APPEND _tidy_checks "-clang-analyzer-security.insecureAPI.strcpy")
|
||||
list(APPEND _tidy_checks "-clang-analyzer-optin.performance.Padding")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue