Merge pull request #1009

640a934 tests: cmake: fix building with system gtest (redfish)
4a9e949 tests: cmake: use a list for enabled tests (redfish)
dbd9a26 cmake: tests: gtest target is not always defined #983 (redfish)
This commit is contained in:
Riccardo Spagni 2016-09-01 11:25:37 +02:00
commit e389a9cd8f
No known key found for this signature in database
GPG Key ID: 55432DF31CCD4FCD
6 changed files with 30 additions and 16 deletions

View File

@ -79,7 +79,6 @@ Packaging for your favorite distribution would be a welcome contribution!
* pkg-config * pkg-config
* libunbound `>=1.4.16` (note: Unbound is not a dependency, libunbound is) * libunbound `>=1.4.16` (note: Unbound is not a dependency, libunbound is)
* libevent `>=2.0` * libevent `>=2.0`
* libgtest `>=1.5`
* Boost `>=1.58` * Boost `>=1.58`
* BerkeleyDB `>=4.8` (note: on Ubuntu this means installing libdb-dev and libdb++-dev) * BerkeleyDB `>=4.8` (note: on Ubuntu this means installing libdb-dev and libdb++-dev)
* libunwind (optional, for stack trace on exception) * libunwind (optional, for stack trace on exception)
@ -87,6 +86,7 @@ Packaging for your favorite distribution would be a welcome contribution!
* ldns `>=1.6.17` (optional, for statically-linked binaries) * ldns `>=1.6.17` (optional, for statically-linked binaries)
* expat `>=1.1` (optional, for statically-linked binaries) * expat `>=1.1` (optional, for statically-linked binaries)
* bison or yacc (optional, for statically-linked binaries) * bison or yacc (optional, for statically-linked binaries)
* GTest `>=1.5` (optional, for running test suite) (NOTE: `libgtest-dev` package in Ubuntu ships without binaries and requires a manual build; `gtest` on Arch includes binaries)
* Doxygen (optional, for generating documentation) * Doxygen (optional, for generating documentation)
* graphviz (optional, for generating documentation) * graphviz (optional, for generating documentation)

View File

@ -28,6 +28,9 @@
# #
# Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers # Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
# The docs say this only affects grouping in IDEs
set(folder "tests")
if (WIN32 AND STATIC) if (WIN32 AND STATIC)
add_definitions(-DSTATICLIB) add_definitions(-DSTATICLIB)
# miniupnp changed their static define # miniupnp changed their static define
@ -39,19 +42,24 @@ find_package(GTest)
if (GTest_FOUND) if (GTest_FOUND)
include_directories(SYSTEM ${GTEST_INCLUDE_DIRS}) include_directories(SYSTEM ${GTEST_INCLUDE_DIRS})
else () else ()
message(STATUS "GTest not found on the system: will use GTest bundled with this source")
add_subdirectory(gtest) add_subdirectory(gtest)
include_directories(SYSTEM "${gtest_SOURCE_DIR}/include" "${gtest_SOURCE_DIR}") include_directories(SYSTEM "${gtest_SOURCE_DIR}/include" "${gtest_SOURCE_DIR}")
# Emulate the FindGTest module's variable. # Emulate the FindGTest module's variable.
set(GTEST_MAIN_LIBRARIES gtest_main) set(GTEST_LIBRARIES gtest)
# Ignore some warnings when building gtest binaries. # Ignore some warnings when building gtest binaries.
if(NOT MSVC) if(NOT MSVC)
set_property(TARGET gtest gtest_main set_property(TARGET gtest
APPEND_STRING APPEND_STRING
PROPERTY PROPERTY
COMPILE_FLAGS " -Wno-undef -Wno-sign-compare") COMPILE_FLAGS " -Wno-undef -Wno-sign-compare")
endif() endif()
set_property(TARGET gtest
PROPERTY
FOLDER "${folder}")
endif () endif ()
if (NOT DEFINED ENV{TRAVIS}) if (NOT DEFINED ENV{TRAVIS})
@ -84,17 +92,23 @@ target_link_libraries(hash-target-tests
cryptonote_core) cryptonote_core)
set_property(TARGET hash-target-tests set_property(TARGET hash-target-tests
PROPERTY PROPERTY
FOLDER "tests") FOLDER "${folder}")
add_test( add_test(
NAME hash-target NAME hash-target
COMMAND hash-target-tests) COMMAND hash-target-tests)
# Skip the core_tests if we are running in Travis-CI because they will take too long set(enabled_tests
if (DEFINED ENV{TRAVIS}) difficulty
add_custom_target(tests DEPENDS difficulty hash performance_tests core_proxy unit_tests) hash
else () performance_tests
add_custom_target(tests DEPENDS coretests difficulty hash performance_tests core_proxy unit_tests) core_proxy
endif () unit_tests)
set_property(TARGET gtest gtest_main hash-target-tests tests PROPERTY FOLDER "tests") # Skip the core_tests in Travis-CI because they will take too long
if (NOT DEFINED ENV{TRAVIS})
list(APPEND enabled_tests coretests)
endif()
add_custom_target(tests DEPENDS enabled_tests)
set_property(TARGET tests PROPERTY FOLDER "${folder}")

View File

@ -42,7 +42,7 @@ target_link_libraries(transfers
crypto crypto
common common
epee epee
${GTEST_MAIN_LIBRARIES} ${GTEST_LIBRARIES}
${Boost_LIBRARIES}) ${Boost_LIBRARIES})
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/test_transfers") file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/test_transfers")

View File

@ -40,7 +40,7 @@ add_executable(libwallet_api_tests
target_link_libraries(libwallet_api_tests target_link_libraries(libwallet_api_tests
LINK_PRIVATE LINK_PRIVATE
wallet wallet
${GTEST_MAIN_LIBRARIES} ${GTEST_LIBRARIES}
${EXTRA_LIBRARIES}) ${EXTRA_LIBRARIES})
set_property(TARGET libwallet_api_tests set_property(TARGET libwallet_api_tests

View File

@ -40,7 +40,7 @@ target_link_libraries(net_load_tests_clt
otshell_utils otshell_utils
p2p p2p
cryptonote_core cryptonote_core
${GTEST_MAIN_LIBRARIES} ${GTEST_LIBRARIES}
${Boost_CHRONO_LIBRARY} ${Boost_CHRONO_LIBRARY}
${Boost_DATE_TIME_LIBRARY} ${Boost_DATE_TIME_LIBRARY}
${Boost_FILESYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}
@ -62,7 +62,7 @@ target_link_libraries(net_load_tests_srv
otshell_utils otshell_utils
p2p p2p
cryptonote_core cryptonote_core
${GTEST_MAIN_LIBRARIES} ${GTEST_LIBRARIES}
${Boost_CHRONO_LIBRARY} ${Boost_CHRONO_LIBRARY}
${Boost_DATE_TIME_LIBRARY} ${Boost_DATE_TIME_LIBRARY}
${Boost_FILESYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY}

View File

@ -69,7 +69,7 @@ target_link_libraries(unit_tests
rpc rpc
wallet wallet
p2p p2p
${GTEST_MAIN_LIBRARIES} ${GTEST_LIBRARIES}
${Boost_CHRONO_LIBRARY} ${Boost_CHRONO_LIBRARY}
${Boost_REGEX_LIBRARY} ${Boost_REGEX_LIBRARY}
${Boost_SYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY}