| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| cmake_minimum_required(VERSION 3.10) |
| project(nativeclient.tests.cppcache LANGUAGES CXX) |
| |
| add_library(test-cppcache-utils STATIC |
| fw_dunit.cpp |
| BBNamingContext.cpp |
| CacheHelper.cpp |
| CacheableWrapper.cpp |
| ) |
| target_link_libraries(test-cppcache-utils |
| PRIVATE |
| ACE::ACE |
| _WarningsAsError |
| PUBLIC |
| apache-geode |
| framework |
| ) |
| set_target_properties(test-cppcache-utils PROPERTIES |
| CXX_VISIBILITY_PRESET hidden |
| VISIBILITY_INLINES_HIDDEN ON |
| FOLDER cpp/test/integration |
| ) |
| target_compile_definitions(test-cppcache-utils |
| PRIVATE |
| $<MAKE_C_IDENTIFIER:test-cppcache-utils>_static=1 |
| ) |
| target_include_directories(test-cppcache-utils |
| PRIVATE |
| $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src |
| ) |
| add_clangformat(test-cppcache-utils) |
| |
| |
| add_library(unit_test_callbacks SHARED LibraryCallbacks.cpp) |
| target_link_libraries(unit_test_callbacks |
| PRIVATE |
| ACE::ACE |
| _WarningsAsError |
| PUBLIC |
| apache-geode |
| ) |
| target_include_directories(unit_test_callbacks |
| PRIVATE |
| $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src |
| ) |
| |
| set_target_properties(unit_test_callbacks PROPERTIES FOLDER cpp/test/integration) |
| |
| add_clangformat(unit_test_callbacks) |
| |
| |
| enable_testing() |
| |
| # Function to resolve both config and generate stage variables. |
| macro(generate_config INPUT TEMP OUTPUT) |
| configure_file(${INPUT} ${TEMP}) |
| file(GENERATE OUTPUT ${OUTPUT} |
| INPUT ${TEMP} |
| CONDITION 1 |
| ) |
| endmacro() |
| |
| # Add lazy loaded shared library paths to test environment |
| foreach( lib OpenSSL::SSL SQLite::sqlite3 ) |
| get_target_property(library_path ${lib} INTERFACE_LIBRARY_DIR) |
| set(LD_LIBRARY_PATH ${LD_LIBRARY_PATH} ${library_path}) |
| get_target_property(runtime_path ${lib} INTERFACE_RUNTIME_DIR) |
| set(PATH ${PATH} ${runtime_path}) |
| endforeach() |
| |
| set (PORT 20000) |
| |
| file(GLOB SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "test*.cpp") |
| foreach(FILE ${SOURCES}) |
| string(REGEX REPLACE "\\.cpp" "" TEST ${FILE}) |
| set(TESTS ${TESTS} ${TEST}) |
| add_dependencies(integration-tests ${TEST}) |
| add_executable(${TEST} ${FILE}) |
| set_target_properties(${TEST} PROPERTIES |
| CXX_VISIBILITY_PRESET hidden |
| VISIBILITY_INLINES_HIDDEN ON |
| FOLDER cpp/test/integration/legacy |
| ) |
| |
| target_link_libraries(${TEST} |
| PRIVATE |
| ACE::ACE |
| test-cppcache-utils |
| _WarningsAsError |
| _CppCodeCoverage |
| internal |
| PUBLIC |
| apache-geode |
| testobject |
| framework |
| ) |
| target_include_directories(${TEST} PRIVATE |
| $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src |
| ) |
| |
| if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") |
| target_compile_options(${TEST} PRIVATE |
| -Wno-unused-function |
| ) |
| elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
| target_compile_options(${TEST} PRIVATE |
| -Wno-unused-member-function |
| ) |
| endif() |
| |
| # Some tests depend on these library |
| add_dependencies(${TEST} securityImpl cryptoImpl DHImpl SqLiteImpl) |
| |
| add_clangformat(${TEST}) |
| |
| set(TEST_DIR ${CMAKE_CURRENT_BINARY_DIR}/.tests/${TEST}) |
| |
| math(EXPR PORT "${PORT} + 1") |
| |
| if (WIN32) |
| set (TEST_SCRIPT_SUFFIX .bat) |
| generate_config(${CMAKE_CURRENT_SOURCE_DIR}/test.bat.in ${CMAKE_CURRENT_BINARY_DIR}/.${TEST}.bat.in $<TARGET_FILE:${TEST}>${TEST_SCRIPT_SUFFIX}) |
| |
| set(TEST_COMMAND $<TARGET_FILE:${TEST}>${TEST_SCRIPT_SUFFIX}) |
| |
| else() |
| set (TEST_SCRIPT_SUFFIX .sh) |
| generate_config(${CMAKE_CURRENT_SOURCE_DIR}/test.sh.in ${CMAKE_CURRENT_BINARY_DIR}/.${TEST}.sh.in $<TARGET_FILE:${TEST}>${TEST_SCRIPT_SUFFIX}) |
| |
| # TODO fix file permissions on .sh |
| set(TEST_COMMAND bash $<TARGET_FILE:${TEST}>${TEST_SCRIPT_SUFFIX}) |
| |
| endif() |
| |
| add_test(NAME ${TEST} |
| COMMAND ${TEST_COMMAND} |
| ) |
| |
| set_property(TEST ${TEST} PROPERTY LABELS STABLE) |
| endforeach() |
| |
| configure_file(CTestCustom.cmake.in CTestCustom.cmake) |
| |
| #TODO this is really bad that we include the root of tests |
| include_directories(${CMAKE_SOURCE_DIR}/tests/cpp) |
| |
| set_property(TEST testDataOutput PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testFWHelper PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testLRUList PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testSystemProperties PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testLogger PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testCache PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testLinkage PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testRegionTemplateArgs PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testRegionMap PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testXmlCacheCreationWithRefid PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testRegionAttributesFactory PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testXmlCacheCreationWithOverFlow PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testThinClientRemoveAllLocal PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testDunit PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testAttributesMutator PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testSpinLock PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testThinClientSSLAuthFail PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testThinClientSSLAuthCorrupt PROPERTY LABELS STABLE QUICK) |
| set_property(TEST testThinClientSSLAuthUntrusted PROPERTY LABELS STABLE QUICK) |
| |
| set_property(TEST testOverflowPutGetSqLite PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientAfterRegionLive PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientCacheables PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientCq PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientCqFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientCqHAFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableConnect PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableDisconnectNormal PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableDisconnectTimeout PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableFailoverClientClosedNoRedundancy PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableFailoverClientNotClosedRedundancy PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableKeepAliveFalseTimeout PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableKeepAliveTrueNormal PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientDurableReconnect PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientFailover2 PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientFailoverInterest PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientFailoverInterest2 PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientFailoverRegex PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientFixedPartitionResolver PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientHADistOps PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientHAEventIDMap PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientHAFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientHAMixedRedundancy PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientHAQueryFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientLRUExpiration PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientLargePutAllWithCallBackArg PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientLocatorFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientMultiDS PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPRPutAllFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPartitionResolver PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPdxDeltaWithNotification PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPdxTests PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPoolRedundancy PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPoolServer PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPutAll PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPutAllPRSingleHop PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientPutAllWithCallBackArgWithoutConcurrency PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientSecurityCQAuthorizationMU PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientTXFailover PROPERTY LABELS FLAKY) |
| set_property(TEST testThinClientTransactionsXA PROPERTY LABELS FLAKY) |
| set_property(TEST testTimedSemaphore PROPERTY LABELS FLAKY) |
| |
| set_property(TEST testFwPerf PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientCqDurable PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientGatewayTest PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientHAFailoverRegex PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientPRSingleHop PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientPoolAttrTest PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientPoolLocator PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientPutWithDelta PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientRemoteQueryTimeout PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientRemoveOps PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSSLWithSecurityAuthz PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityAuthentication PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityAuthenticationMU PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityAuthorization PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityAuthorizationMU PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityDH PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityDH_MU PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityDurableCQAuthorizationMU PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientSecurityPostAuthorization PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientTicket303 PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientTicket304 PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientTracking PROPERTY LABELS OMITTED) |
| set_property(TEST testThinClientWriterException PROPERTY LABELS OMITTED) |
| |
| add_custom_target(run-stable-cppcache-integration-tests |
| COMMAND ctest -C $<CONFIGURATION> -L STABLE |
| WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
| USES_TERMINAL) |
| add_dependencies(run-integration-tests run-stable-cppcache-integration-tests) |
| set_target_properties(run-stable-cppcache-integration-tests PROPERTIES |
| EXCLUDE_FROM_ALL TRUE |
| EXCLUDE_FROM_DEFAULT_BUILD TRUE |
| FOLDER cpp/test/integration |
| ) |
| |
| add_custom_target(run-quick-cppcache-integration-tests |
| COMMAND ctest -C $<CONFIGURATION> -L QUICK -j 4 |
| WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} |
| USES_TERMINAL) |
| set_target_properties(run-quick-cppcache-integration-tests PROPERTIES |
| EXCLUDE_FROM_ALL TRUE |
| EXCLUDE_FROM_DEFAULT_BUILD TRUE |
| FOLDER cpp/test/integration |
| ) |