diff --git a/contrib/teamcity/builds/build-bench.sh b/contrib/teamcity/builds/build-bench.sh index 219d9629d..cd48c8648 100755 --- a/contrib/teamcity/builds/build-bench.sh +++ b/contrib/teamcity/builds/build-bench.sh @@ -1,20 +1,19 @@ #!/usr/bin/env bash export LC_ALL=C.UTF-8 set -euxo pipefail # shellcheck source=../ci-fixture.sh source "${TOPLEVEL}/contrib/teamcity/ci-fixture.sh" # Build and run the benchmarks. CMAKE_FLAGS=( "-DBUILD_BITCOIN_WALLET=ON" "-DSECP256K1_ENABLE_MODULE_ECDH=ON" "-DSECP256K1_ENABLE_MODULE_MULTISET=ON" ) -build_with_cmake --Werror bitcoin-bench - -./src/bench/bitcoin-bench -printer=junit > junit_results_bench.xml +build_with_cmake --Werror --junit +ninja bench-bitcoin ninja bench-secp256k1 diff --git a/src/bench/CMakeLists.txt b/src/bench/CMakeLists.txt index 9a5579c55..92193c4c9 100644 --- a/src/bench/CMakeLists.txt +++ b/src/bench/CMakeLists.txt @@ -1,81 +1,93 @@ # Copyright (c) 2018 The Bitcoin developers project(bitcoin-bench) set(BENCH_DATA_RAW_FILES data/block413567.raw ) # Process raw files. file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/data") foreach(_raw_file ${BENCH_DATA_RAW_FILES}) string(APPEND _generated_header_output "${CMAKE_CURRENT_BINARY_DIR}/${_raw_file}" ".h" ) list(APPEND BENCH_DATA_GENERATED_HEADERS ${_generated_header_output}) get_filename_component(_test_name ${_raw_file} NAME_WE) add_custom_command( OUTPUT "${_generated_header_output}" COMMAND "${Python_EXECUTABLE}" "data/convert-raw-to-header.py" "${_test_name}" "${_raw_file}" > "${_generated_header_output}" COMMENT "Transforming raw file ${_raw_file} into header" MAIN_DEPEDENCY "${_raw_file}" DEPENDS "data/convert-raw-to-header.py" VERBATIM WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) endforeach() add_executable(bitcoin-bench base58.cpp bench.cpp bench_bitcoin.cpp block_assemble.cpp cashaddr.cpp ccoins_caching.cpp checkblock.cpp checkqueue.cpp crypto_aes.cpp crypto_hash.cpp data.cpp duplicate_inputs.cpp examples.cpp gcs_filter.cpp lockedpool.cpp mempool_eviction.cpp merkle_root.cpp prevector.cpp rollingbloom.cpp rpc_blockchain.cpp rpc_mempool.cpp util_time.cpp # Add the generated headers to trigger the conversion command ${BENCH_DATA_GENERATED_HEADERS} # Testing related utilities ../test/util.cpp ) target_link_libraries(bitcoin-bench testutil) if(BUILD_BITCOIN_WALLET) target_sources(bitcoin-bench PRIVATE coin_selection.cpp wallet_balance.cpp ) target_link_libraries(bitcoin-bench wallet) endif() include(InstallationHelper) install_target(bitcoin-bench EXCLUDE_FROM_ALL) -add_custom_target(bench-bitcoin COMMAND bitcoin-bench USES_TERMINAL) +include(TestSuite) +if(ENABLE_JUNIT_REPORT) + set(JUNIT_ARGS -printer=junit > "${JUNIT_REPORT_DIRECTORY}/bench-bitcoin.xml") +endif() + +add_test_custom_target(bench-bitcoin + TEST_COMMAND + "$" + ${JUNIT_ARGS} + CUSTOM_TARGET_ARGS + DEPENDS bitcoin-bench + USES_TERMINAL +)