From 7bfcffadb91022e420b32a2d0cfa97a0e9f98b64 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Tue, 21 Oct 2014 13:01:56 -0400 Subject: cmake: put each test executable in its own directory --- tests/CMakeLists.txt | 73 ++++++++++++++++++++-------------------------------- 1 file changed, 28 insertions(+), 45 deletions(-) (limited to 'tests/CMakeLists.txt') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 533bf8c58..63a213a34 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -35,57 +35,40 @@ add_definitions(-DMINIUPNP_STATICLIB) add_subdirectory(gtest) include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR}) -file(GLOB_RECURSE CORE_TESTS core_tests/*) -file(GLOB_RECURSE CRYPTO_TESTS crypto/*) -file(GLOB_RECURSE FUNC_TESTS functional_tests/*) -file(GLOB_RECURSE PERFORMANCE_TESTS performance_tests/*) -file(GLOB_RECURSE CORE_PROXY core_proxy/*) -file(GLOB_RECURSE UNIT_TESTS unit_tests/*) - -source_group(core_tests FILES ${CORE_TESTS}) -source_group(crypto_tests FILES ${CRYPTO_TESTS}) -source_group(functional_tests FILES ${FUNC_TESTS}) -source_group(performance_tests FILES ${PERFORMANCE_TESTS}) -source_group(core_proxy FILES ${CORE_PROXY}) -source_group(unit_tests FILES ${UNIT_TESTS}) +add_subdirectory(core_tests) +add_subdirectory(crypto) +add_subdirectory(functional_tests) +add_subdirectory(performance_tests) +add_subdirectory(core_proxy) +add_subdirectory(unit_tests) +add_subdirectory(difficulty) +add_subdirectory(hash) +add_subdirectory(net_load_tests) # add_subdirectory(daemon_tests) -add_executable(coretests ${CORE_TESTS}) -add_executable(crypto-tests ${CRYPTO_TESTS}) -add_executable(difficulty-tests difficulty/difficulty.cpp) -add_executable(hash-tests hash/main.cpp) -add_executable(hash-target-tests hash-target.cpp) -add_executable(functional_tests ${FUNC_TESTS}) -add_executable(performance_tests ${PERFORMANCE_TESTS}) -add_executable(core_proxy ${CORE_PROXY}) -add_executable(unit_tests ${UNIT_TESTS}) -add_executable(net_load_tests_clt net_load_tests/clt.cpp) -add_executable(net_load_tests_srv net_load_tests/srv.cpp) +set(hash_targets_sources + hash-target.cpp) + +set(hash_targets_headers) -target_link_libraries(core_proxy cryptonote_core common crypto ${UNBOUND_LIBRARY} ${UPNP_LIBRARIES} ${Boost_LIBRARIES} ${EXTRA_LIBRARIES}) -target_link_libraries(coretests cryptonote_core common crypto ${UNBOUND_LIBRARY} ${Boost_LIBRARIES} ${EXTRA_LIBRARIES}) -target_link_libraries(difficulty-tests cryptonote_core) -target_link_libraries(functional_tests cryptonote_core wallet common crypto ${UNBOUND_LIBRARY} ${Boost_LIBRARIES} ${EXTRA_LIBRARIES}) -target_link_libraries(hash-tests crypto) -target_link_libraries(hash-target-tests crypto cryptonote_core) -target_link_libraries(performance_tests cryptonote_core common crypto ${UNBOUND_LIBRARY} ${Boost_LIBRARIES} ${EXTRA_LIBRARIES}) -target_link_libraries(unit_tests gtest_main rpc cryptonote_core wallet crypto common ${UNBOUND_LIBRARY} ${Boost_LIBRARIES} ${EXTRA_LIBRARIES}) -target_link_libraries(net_load_tests_clt cryptonote_core common crypto gtest_main ${UNBOUND_LIBRARY} ${Boost_LIBRARIES} ${EXTRA_LIBRARIES}) -target_link_libraries(net_load_tests_srv cryptonote_core common crypto gtest_main ${UNBOUND_LIBRARY} ${Boost_LIBRARIES} ${EXTRA_LIBRARIES}) +add_executable(hash-target-tests + ${hash_targets_sources} + ${hash_targets_headers}) +target_link_libraries(hash-target-tests + PRIVATE + cryptonote_core) +set_property(TARGET hash-target-tests + PROPERTY + FOLDER "tests") + +add_test( + NAME hash-target + COMMAND hash-target-tests) if(NOT MSVC) - set_property(TARGET gtest gtest_main unit_tests net_load_tests_clt net_load_tests_srv APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-sign-compare") + set_property(TARGET gtest gtest_main APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-sign-compare") endif() add_custom_target(tests DEPENDS coretests difficulty hash performance_tests core_proxy unit_tests) -set_property(TARGET coretests crypto-tests functional_tests difficulty-tests gtest gtest_main hash-tests hash-target-tests performance_tests core_proxy unit_tests tests net_load_tests_clt net_load_tests_srv PROPERTY FOLDER "tests") - -add_test(coretests coretests --generate_and_play_test_data) -add_test(crypto crypto-tests ${CMAKE_CURRENT_SOURCE_DIR}/crypto/tests.txt) -add_test(difficulty difficulty-tests ${CMAKE_CURRENT_SOURCE_DIR}/difficulty/data.txt) -foreach(hash IN ITEMS fast slow tree extra-blake extra-groestl extra-jh extra-skein) - add_test(hash-${hash} hash-tests ${hash} ${CMAKE_CURRENT_SOURCE_DIR}/hash/tests-${hash}.txt) -endforeach(hash) -add_test(hash-target hash-target-tests) -add_test(unit_tests unit_tests) +set_property(TARGET gtest gtest_main hash-target-tests tests PROPERTY FOLDER "tests") -- cgit v1.2.3 From fa3ff758624e9c9704a4a541c195e10335debc3c Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Tue, 21 Oct 2014 13:27:47 -0400 Subject: gtest: support an external gtest --- tests/CMakeLists.txt | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'tests/CMakeLists.txt') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 63a213a34..3da9fdb6b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -32,8 +32,25 @@ add_definitions(-DSTATICLIB) # miniupnp changed their static define add_definitions(-DMINIUPNP_STATICLIB) -add_subdirectory(gtest) -include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR}) +find_package(GTest) + +if (GTest_FOUND) + include_directories(SYSTEM ${GTEST_INCLUDE_DIRS}) +else () + add_subdirectory(gtest) + include_directories(SYSTEM "${gtest_SOURCE_DIR}/include" "${gtest_SOURCE_DIR}") + + # Emulate the FindGTest module's variable. + set(GTEST_MAIN_LIBRARIES gtest_main) + + # Ignore some warnings when building gtest binaries. + if(NOT MSVC) + set_property(TARGET gtest gtest_main + APPEND_STRING + PROPERTY + COMPILE_FLAGS " -Wno-undef -Wno-sign-compare") + endif() +endif () add_subdirectory(core_tests) add_subdirectory(crypto) @@ -66,9 +83,5 @@ add_test( NAME hash-target COMMAND hash-target-tests) -if(NOT MSVC) - set_property(TARGET gtest gtest_main APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-sign-compare") -endif() - add_custom_target(tests DEPENDS coretests difficulty hash performance_tests core_proxy unit_tests) set_property(TARGET gtest gtest_main hash-target-tests tests PROPERTY FOLDER "tests") -- cgit v1.2.3 From 464c2805e5512117970974d5cadc4e59eee5d921 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 23 Oct 2014 16:34:42 -0400 Subject: cmake: fix up miniupnpc's define It's only necessary on Windows builds and new versions renamed the define without any compatibility bridge. --- tests/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'tests/CMakeLists.txt') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3da9fdb6b..0f99cab73 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -28,9 +28,11 @@ # # Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers -add_definitions(-DSTATICLIB) -# miniupnp changed their static define -add_definitions(-DMINIUPNP_STATICLIB) +if (WIN32 AND STATIC) + add_definitions(-DSTATICLIB) + # miniupnp changed their static define + add_definitions(-DMINIUPNP_STATICLIB) +endif () find_package(GTest) -- cgit v1.2.3 From 7d708e422397fb0ba8ac29855eb27964115e7217 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Fri, 24 Oct 2014 14:48:14 -0400 Subject: cmake: support 2.8.7 Older versions of CMake support LINK_{PUBLIC,PRIVATE} while newer versions prefer PUBLIC and PRIVATE instead, but still support the LINK_ prefix. --- tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/CMakeLists.txt') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0f99cab73..ae20b8754 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -75,7 +75,7 @@ add_executable(hash-target-tests ${hash_targets_sources} ${hash_targets_headers}) target_link_libraries(hash-target-tests - PRIVATE + LINK_PRIVATE cryptonote_core) set_property(TARGET hash-target-tests PROPERTY -- cgit v1.2.3