diff --git a/CMakeLists.txt b/CMakeLists.txt index 681fb8661d4a5dfdb29a0f4a341a7c20d09649f5..31b42d272652fc3405008585d32cea18e5a1403a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,9 +42,6 @@ string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_LIBS string(REGEX REPLACE "grpc\\+?\\+?_unsecure" "" CONAN_PKG_LIBS "${CONAN_PKG_LIBS}") -# ignore some warnings here -add_compile_options(-Wno-unused-parameter -Wno-unused-result -g) - set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH}) enable_testing() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 49dde42cf0d3a578f9bd1f50cd99b1c88ccf3fcb..23ef7d4ba3fe73fb58272a1f0f29e470e0aaefc7 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -27,11 +27,39 @@ set(test_cases test_ccaosdb ) + +include(CheckCXXCompilerFlag) +include(CheckCCompilerFlag) + +function(add_compiler_flag flag) + string(FIND "${CMAKE_CXX_FLAGS}" "${flag}" cxx_present) + if(cxx_present EQUAL -1) + check_cxx_compiler_flag("${flag}" flag_supported) + if(flag_supported) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE) + endif() + unset(flag_supported CACHE) + endif() + unset(cxx_present CACHE) +endfunction() + +### but ignore these +add_compiler_flag("-Wno-unused-parameter") +add_compiler_flag("-Wno-unused-result") +add_compiler_flag("-g") + ####################################################### ### Linting with clang-tidy and include-what-you-use ####################################################### option(LINTING "clang-tidy and iwye" ON) if(LINTING) + ### set paranoid compiler flags + #add_compiler_flag("-Wall") + #add_compiler_flag("-Wextra") + #add_compiler_flag("-pedantic") + #add_compiler_flag("-Werror") + + find_program(iwyu NAMES include-what-you-use iwyu PATHS ${CMAKE_SOURCE_DIR}/tools/include-what-you-use/${iwyu_os}/bin) @@ -54,7 +82,7 @@ if(LINTING) "--warnings-as-errors=*" "--fix") set(_CMAKE_CXX_CLANG_TIDY_CHECKS - "--checks=*,-fuchsia-*,-llvm-include-order,-llvmlibc-*,-cert-err58-cpp,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-google-readability-avoid-underscore-in-googletest-name,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-cppcoreguidelines-avoid-goto,-hicpp-avoid-goto") + "--checks=*,-fuchsia-*,-llvmlibc-*,-cert-err58-cpp,-cppcoreguidelines-avoid-non-const-global-variables,-cppcoreguidelines-owning-memory,-modernize-use-trailing-return-type,-google-readability-avoid-underscore-in-googletest-name,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-cppcoreguidelines-avoid-goto,-hicpp-avoid-goto") endif() else() message(STATUS "LINTING is OFF") diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp index 3b99e8e0c8869230648b5d85359e3ecbeebf07e6..1bf33420edef2b62f4dbfa395ffd2b401b43ea68 100644 --- a/test/test_ccaosdb.cpp +++ b/test/test_ccaosdb.cpp @@ -17,11 +17,11 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -#include <memory> // for allocator, unique_ptr #include "ccaosdb.h" // for caosdb_info_version_info, caosdb_... #include "gtest/gtest-message.h" // for Message #include "gtest/gtest-test-part.h" // for TestPartResult #include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, SuiteApiResolver +#include <memory> // for allocator, unique_ptr TEST(test_ccaosdb, connection_ssl_authentication_success) { diff --git a/test/test_connection.cpp b/test/test_connection.cpp index 08eec662fd93ac3e0b7b05579f0aa4c184017a38..2562998ecc1b5bb3a81e5a9e92bb7e8c5f8f4b1a 100644 --- a/test/test_connection.cpp +++ b/test/test_connection.cpp @@ -18,21 +18,27 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. * */ -#include <gtest/gtest-message.h> // for Message -#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestPartResult -#include <memory> // for make_shared, allocator, shared_ptr -#include <string> // for string -#include "caosdb/authentication.h" // for PlainPasswordAuthenticator -#include "caosdb/connection.h" // for InsecureConnectionConfiguration -#include "caosdb/exceptions.h" // for AuthenticationError, ConnectionError -#include "caosdb/info.h" // for VersionInfo -#include "caosdb/utility.h" // for get_env_var -#include "gtest/gtest_pred_impl.h" // for Test, TEST, EXPECT_EQ, EXPECT_THROW -#include "caosdb_test_utility.h" -#include "caosdb/constants.h" +#include <gtest/gtest-message.h> // for Message +#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestPartR... +#include <memory> // for allocator, unique_ptr, __sh... +#include <string> // for stoi, string +#include "boost/filesystem/path.hpp" // for path +#include "caosdb/authentication.h" // for PlainPasswordAuthenticator +#include "caosdb/certificate_provider.h" // for PemFileCertificateProvider +#include "caosdb/configuration.h" // for InsecureConnectionConfigura... +#include "caosdb/connection.h" // for Connection, VersionInfo, path +#include "caosdb/constants.h" // for COMPATIBLE_SERVER_VERSION_M... +#include "caosdb/exceptions.h" // for AuthenticationError, Connec... +#include "caosdb/info.h" // for VersionInfo +#include "caosdb/utility.h" // for get_env_var +#include "caosdb_test_utility.h" // for EXPECT_THROW_MESSAGE +#include "gtest/gtest_pred_impl.h" // for Test, TestInfo, TEST, EXPEC... namespace caosdb::connection { using caosdb::authentication::PlainPasswordAuthenticator; +using caosdb::configuration::InsecureConnectionConfiguration; +using caosdb::configuration::PemFileCertificateProvider; +using caosdb::configuration::TlsConnectionConfiguration; using caosdb::exceptions::AuthenticationError; using caosdb::exceptions::ConnectionError; diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp index ec59df9e692416d727529f3c320583be99f6b8f8..343b888b25739b91267b1397f3b8800b48d9fc19 100644 --- a/test/test_transaction.cpp +++ b/test/test_transaction.cpp @@ -18,13 +18,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. * */ -#include <gtest/gtest-message.h> // for Message -#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl -#include <memory> // for allocator, static_pointer_cast #include "caosdb/connection.h" // for CaosDBConnection #include "caosdb/entity.h" // for Entity, EntityID #include "caosdb/transaction.h" // for Transaction, UniqueResult, Entity +#include <gtest/gtest-message.h> // for Message +#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl #include "gtest/gtest_pred_impl.h" // for Test, TestInfo, EXPECT_EQ, TEST +#include <memory> // for allocator, static_pointer_cast namespace caosdb::transaction {