diff --git a/test_package/CMakeLists.txt b/test_package/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..6e0db0446b0d4a2e1767f1ecdf2156ffb5dbb295 --- /dev/null +++ b/test_package/CMakeLists.txt @@ -0,0 +1,47 @@ +cmake_minimum_required(VERSION 3.1) +project(PackageTest CXX) + +####################################################################### +### append test cases here (file name without the ".cpp" suffix) +####################################################################### +set(test_cases + test_info + ) + +################################################### +### Set up tests using GoogleTest (GTest) +################################################### + +# dependencies +include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake) +conan_basic_setup(KEEP_RPATHS) + +# supress warnings during build of gtest +cmake_policy(SET CMP0054 NEW) +enable_testing() + +# add special cmake functions for gtest +include(GoogleTest REQUIRED) + +# loop over all test cases and add them to the test runner +list(LENGTH test_cases len_test_cases) +math(EXPR len_test_cases "${len_test_cases} - 1") +foreach (i RANGE "${len_test_cases}") + list(GET test_cases ${i} test_case_name) + add_executable(${test_case_name} ${test_case_name}.cpp) + target_link_libraries(${test_case_name} PRIVATE ${CONAN_LIBS_CAOSDB} + ${CONAN_LIBS_GTEST} ${CONAN_LIBS_GRPC} ${CONAN_LIBS_ABSEIL} + ${CONAN_LIBS_OPENSSL} ${CONAN_LIBS_C-ARES} ${CONAN_LIBS_BZIP2} + ${CONAN_LIBS_PROTOBUF} ${CONAN_LIBS_ZLIB}) + if("${CMAKE_BUILD_TYPE}" MATCHES "Debug") + target_link_libraries(${test_case_name} PRIVATE caosdb_grpc) + endif() + target_include_directories(${test_case_name} PUBLIC ${CONAN_INCLUDE_DIRS}) + set_target_properties(${test_case_name} + PROPERTIES + CXX_CLANG_TIDY "${_CMAKE_CXX_CLANG_TIDY}" + CXX_INCLUDE_WHAT_YOU_USE "${_CMAKE_CXX_INCLUDE_WHAT_YOU_USE}") + gtest_discover_tests(${test_case_name} + PROPERTIES + LABELS "caosdb-cpplib-int-tests") +endforeach () diff --git a/test_package/conanfile.py b/test_package/conanfile.py new file mode 100644 index 0000000000000000000000000000000000000000..541113405bfca3b1222de81124a13586fe4bbda5 --- /dev/null +++ b/test_package/conanfile.py @@ -0,0 +1,28 @@ +import os + +from conans import ConanFile, CMake, tools + + +class LibcaosdbTestConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "cmake" + build_requires = [ + ("gtest/1.11.0"), + ] + + def build(self): + cmake = CMake(self) + # Current dir is "test_package/build/<build_id>" and CMakeLists.txt is + # in "test_package" + cmake.configure() + cmake.build() + + def imports(self): + self.copy("*.dll", dst="bin", src="bin") + self.copy("*.dylib*", dst="bin", src="lib") + self.copy('*.so*', dst='bin', src='lib') + + def test(self): + if not tools.cross_building(self): + cmake = CMake(self) + cmake.test() diff --git a/test_package/test_info.cpp b/test_package/test_info.cpp new file mode 120000 index 0000000000000000000000000000000000000000..e0e5ee2ff361ddf40cdf3f8d2cf2d03f89d49cbb --- /dev/null +++ b/test_package/test_info.cpp @@ -0,0 +1 @@ +../test/test_info.cpp \ No newline at end of file