From 7bfcffadb91022e420b32a2d0cfa97a0e9f98b64 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Tue, 21 Oct 2014 13:01:56 -0400 Subject: [PATCH] cmake: put each test executable in its own directory --- tests/CMakeLists.txt | 73 +++++++++-------------- tests/core_proxy/CMakeLists.txt | 50 ++++++++++++++++ tests/core_tests/CMakeLists.txt | 74 ++++++++++++++++++++++++ tests/crypto/CMakeLists.txt | 50 ++++++++++++++++ tests/difficulty/CMakeLists.txt | 46 +++++++++++++++ tests/functional_tests/CMakeLists.txt | 52 +++++++++++++++++ tests/hash/CMakeLists.txt | 48 ++++++++++++++++ tests/net_load_tests/CMakeLists.txt | 74 ++++++++++++++++++++++++ tests/performance_tests/CMakeLists.txt | 60 +++++++++++++++++++ tests/unit_tests/CMakeLists.txt | 80 ++++++++++++++++++++++++++ 10 files changed, 562 insertions(+), 45 deletions(-) create mode 100644 tests/core_proxy/CMakeLists.txt create mode 100644 tests/core_tests/CMakeLists.txt create mode 100644 tests/crypto/CMakeLists.txt create mode 100644 tests/difficulty/CMakeLists.txt create mode 100644 tests/functional_tests/CMakeLists.txt create mode 100644 tests/hash/CMakeLists.txt create mode 100644 tests/net_load_tests/CMakeLists.txt create mode 100644 tests/performance_tests/CMakeLists.txt create mode 100644 tests/unit_tests/CMakeLists.txt diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 533bf8c5..63a213a3 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) -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}) +set(hash_targets_headers) + +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") diff --git a/tests/core_proxy/CMakeLists.txt b/tests/core_proxy/CMakeLists.txt new file mode 100644 index 00000000..7186f2c2 --- /dev/null +++ b/tests/core_proxy/CMakeLists.txt @@ -0,0 +1,50 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(core_proxy_sources + core_proxy.cpp) + +set(core_proxy_headers + core_proxy.h) + +add_executable(core_proxy + ${core_proxy_sources} + ${core_proxy_headers}) +target_link_libraries(core_proxy + PRIVATE + cryptonote_core + ${UPNP_LIBRARIES} + ${Boost_CHRONO_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${CMAKE_THREAD_LIBS_INIT} + ${EXPAT_LIBRARIES}) +set_property(TARGET core_proxy + PROPERTY + FOLDER "tests") diff --git a/tests/core_tests/CMakeLists.txt b/tests/core_tests/CMakeLists.txt new file mode 100644 index 00000000..b8f07b3d --- /dev/null +++ b/tests/core_tests/CMakeLists.txt @@ -0,0 +1,74 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(core_tests_sources + block_reward.cpp + block_validation.cpp + chain_split_1.cpp + chain_switch_1.cpp + chaingen.cpp + chaingen001.cpp + chaingen_main.cpp + double_spend.cpp + integer_overflow.cpp + ring_signature_1.cpp + transaction_tests.cpp + tx_validation.cpp) + +set(core_tests_headers + block_reward.h + block_validation.h + chain_split_1.h + chain_switch_1.h + chaingen.h + chaingen_tests_list.h + double_spend.h + double_spend.inl + integer_overflow.h + ring_signature_1.h + transaction_tests.h + tx_validation.h) + +add_executable(coretests + ${core_tests_sources} + ${core_tests_headers}) +target_link_libraries(coretests + PRIVATE + cryptonote_core + ${Boost_FILESYSTEM_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${CMAKE_THREAD_LIBS_INIT} + ${EXPAT_LIBRARIES} + ${EXTRA_LIBRARIES}) +set_property(TARGET coretests + PROPERTY + FOLDER "tests") + +add_test( + NAME coretests + COMMAND coretests --generate_and_play_test_data) diff --git a/tests/crypto/CMakeLists.txt b/tests/crypto/CMakeLists.txt new file mode 100644 index 00000000..83982eda --- /dev/null +++ b/tests/crypto/CMakeLists.txt @@ -0,0 +1,50 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(crypto_sources + crypto-ops-data.c + crypto-ops.c + crypto.cpp + hash.c + main.cpp + random.c) + +set(crypto_headers + crypto-tests.h) + +add_executable(crypto-tests + ${crypto_sources} + ${crypto_headers}) +target_link_libraries(crypto-tests) +set_property(TARGET crypto-tests + PROPERTY + FOLDER "tests") + +add_test( + NAME crypto + COMMAND crypto-tests "${CMAKE_CURRENT_SOURCE_DIR}/tests.txt") diff --git a/tests/difficulty/CMakeLists.txt b/tests/difficulty/CMakeLists.txt new file mode 100644 index 00000000..d4ec5bd8 --- /dev/null +++ b/tests/difficulty/CMakeLists.txt @@ -0,0 +1,46 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(difficulty_sources + difficulty.cpp) + +set(difficulty_headers) + +add_executable(difficulty-tests + ${difficulty_sources} + ${difficulty_headers}) +target_link_libraries(difficulty-tests + PRIVATE + cryptonote_core) +set_property(TARGET difficulty-tests + PROPERTY + FOLDER "tests") + +add_test( + NAME difficulty + COMMAND difficulty-tests "${CMAKE_CURRENT_SOURCE_DIR}/data.txt") diff --git a/tests/functional_tests/CMakeLists.txt b/tests/functional_tests/CMakeLists.txt new file mode 100644 index 00000000..f778d326 --- /dev/null +++ b/tests/functional_tests/CMakeLists.txt @@ -0,0 +1,52 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(functional_tests_sources + main.cpp + transactions_flow_test.cpp + transactions_generation_from_blockchain.cpp) + +set(functional_tests_headers + transactions_flow_test.h + transactions_generation_from_blockchain.h) + +add_executable(functional_tests + ${functional_tests_sources} + ${functional_tests_headers}) +target_link_libraries(functional_tests + PRIVATE + cryptonote_core + wallet + common + crypto + ${UNBOUND_LIBRARY} + ${Boost_LIBRARIES} + ${EXTRA_LIBRARIES}) +set_property(TARGET functional_tests + PROPERTY + FOLDER "tests") diff --git a/tests/hash/CMakeLists.txt b/tests/hash/CMakeLists.txt new file mode 100644 index 00000000..4f55552d --- /dev/null +++ b/tests/hash/CMakeLists.txt @@ -0,0 +1,48 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(hash_sources + main.cpp) + +set(hash_headers) + +add_executable(hash-tests + ${hash_sources} + ${hash_headers}) +target_link_libraries(hash-tests + PRIVATE + crypto) +set_property(TARGET hash-tests + PROPERTY + FOLDER "tests") + +foreach (hash IN ITEMS fast slow tree extra-blake extra-groestl extra-jh extra-skein) + add_test( + NAME "hash-${hash}" + COMMAND hash-tests "${hash}" "${CMAKE_CURRENT_SOURCE_DIR}/tests-${hash}.txt") +endforeach () diff --git a/tests/net_load_tests/CMakeLists.txt b/tests/net_load_tests/CMakeLists.txt new file mode 100644 index 00000000..fbb0ac59 --- /dev/null +++ b/tests/net_load_tests/CMakeLists.txt @@ -0,0 +1,74 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(clt_sources + clt.cpp) + +set(clt_headers + net_load_tests.h) + +add_executable(net_load_tests_clt + ${clt_sources} + ${clt_headers}) +target_link_libraries(net_load_tests_clt + PRIVATE + gtest_main + ${Boost_CHRONO_LIBRARY} + ${Boost_DATE_TIME_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${EXTRA_LIBRARIES}) + +set(srv_sources + srv.cpp) + +set(srv_headers + net_load_tests.h) + +add_executable(net_load_tests_srv + ${srv_sources} + ${srv_headers}) +target_link_libraries(net_load_tests_srv + PRIVATE + gtest_main + ${Boost_CHRONO_LIBRARY} + ${Boost_DATE_TIME_LIBRARY} + ${Boost_FILESYSTEM_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${EXTRA_LIBRARIES}) + +set_property(TARGET net_load_tests_clt net_load_tests_srv + PROPERTY + FOLDER "tests") +if(NOT MSVC) + set_property(TARGET net_load_tests_clt net_load_tests_srv APPEND_STRING + PROPERTY + COMPILE_FLAGS " -Wno-undef -Wno-sign-compare") +endif() diff --git a/tests/performance_tests/CMakeLists.txt b/tests/performance_tests/CMakeLists.txt new file mode 100644 index 00000000..f842eee7 --- /dev/null +++ b/tests/performance_tests/CMakeLists.txt @@ -0,0 +1,60 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(performance_tests_sources + main.cpp) + +set(performance_tests_headers + check_ring_signature.h + cn_slow_hash.h + construct_tx.h + derive_public_key.h + derive_secret_key.h + generate_key_derivation.h + generate_key_image.h + generate_key_image_helper.h + is_out_to_acc.h + multi_tx_test_base.h + performance_tests.h + performance_utils.h + single_tx_test_base.h) + +add_executable(performance_tests + ${performance_tests_sources} + ${performance_tests_headers}) +target_link_libraries(performance_tests + PRIVATE + cryptonote_core + common + crypto + ${UNBOUND_LIBRARY} + ${Boost_LIBRARIES} + ${EXTRA_LIBRARIES}) +set_property(TARGET performance_tests + PROPERTY + FOLDER "tests") diff --git a/tests/unit_tests/CMakeLists.txt b/tests/unit_tests/CMakeLists.txt new file mode 100644 index 00000000..f9ee5919 --- /dev/null +++ b/tests/unit_tests/CMakeLists.txt @@ -0,0 +1,80 @@ +# Copyright (c) 2014, The Monero Project +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, are +# permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this list of +# conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright notice, this list +# of conditions and the following disclaimer in the documentation and/or other +# materials provided with the distribution. +# +# 3. Neither the name of the copyright holder nor the names of its contributors may be +# used to endorse or promote products derived from this software without specific +# prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF +# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +set(unit_tests_sources + address_from_url.cpp + base58.cpp + block_reward.cpp + chacha8.cpp + checkpoints.cpp + decompose_amount_into_digits.cpp + dns_resolver.cpp + epee_boosted_tcp_server.cpp + epee_levin_protocol_handler_async.cpp + get_xtype_from_string.cpp + main.cpp + mnemonics.cpp + mul_div.cpp + parse_amount.cpp + serialization.cpp + slow_memmem.cpp + test_format_utils.cpp + test_peerlist.cpp + test_protocol_pack.cpp) + +set(unit_tests_headers + unit_tests_utils.h) + +add_executable(unit_tests + ${unit_tests_sources} + ${unit_tests_headers}) +target_link_libraries(unit_tests + PRIVATE + cryptonote_core + rpc + wallet + gtest_main + ${Boost_CHRONO_LIBRARY} + ${Boost_REGEX_LIBRARY} + ${Boost_SYSTEM_LIBRARY} + ${Boost_THREAD_LIBRARY} + ${EXTRA_LIBRARIES}) +set_property(TARGET unit_tests + PROPERTY + FOLDER "tests") + +if (NOT MSVC) + set_property(TARGET unit_tests + APPEND_STRING + PROPERTY + COMPILE_FLAGS " -Wno-undef -Wno-sign-compare") +endif () + +add_test( + NAME unit_tests + COMMAND unit_tests)