Skip to content

Commit a2c3493

Browse files
committed
cmake: Add test config and runners
1 parent cb7dc94 commit a2c3493

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ project("Bitcoin Core"
2727
LANGUAGES CXX ASM
2828
)
2929

30+
set(PACKAGE_NAME ${PROJECT_NAME})
3031
set(CLIENT_VERSION_IS_RELEASE "false")
3132
set(COPYRIGHT_YEAR "2023")
3233
set(COPYRIGHT_HOLDERS "The %s developers")
@@ -152,6 +153,7 @@ else()
152153
endif()
153154

154155
add_subdirectory(src)
156+
add_subdirectory(test)
155157

156158
message("\n")
157159
message("Configure summary")

test/CMakeLists.txt

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Copyright (c) 2023 The Bitcoin Core developers
2+
# Distributed under the MIT software license, see the accompanying
3+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
4+
5+
function(create_test_config)
6+
set(abs_top_srcdir ${PROJECT_SOURCE_DIR})
7+
set(abs_top_builddir ${PROJECT_BINARY_DIR})
8+
set(EXEEXT ${CMAKE_EXECUTABLE_SUFFIX})
9+
10+
macro(set_configure_variable var conf_var)
11+
if(${var})
12+
set(${conf_var}_TRUE "")
13+
else()
14+
set(${conf_var}_TRUE "#")
15+
endif()
16+
endmacro()
17+
18+
set_configure_variable(ENABLE_WALLET ENABLE_WALLET)
19+
set_configure_variable(WITH_SQLITE USE_SQLITE)
20+
set_configure_variable(WITH_BDB USE_BDB)
21+
set_configure_variable(BUILD_CLI BUILD_BITCOIN_CLI)
22+
set_configure_variable(BUILD_UTIL BUILD_BITCOIN_UTIL)
23+
set_configure_variable(BUILD_WALLET_TOOL BUILD_BITCOIN_WALLET)
24+
set_configure_variable(BUILD_DAEMON BUILD_BITCOIND_TRUE)
25+
set_configure_variable(WITH_ZMQ ENABLE_ZMQ)
26+
set_configure_variable(ENABLE_EXTERNAL_SIGNER ENABLE_EXTERNAL_SIGNER)
27+
set_configure_variable(USE_SYSCALL_SANDBOX ENABLE_SYSCALL_SANDBOX)
28+
set_configure_variable(ENABLE_TRACING ENABLE_USDT_TRACEPOINTS)
29+
30+
configure_file(config.ini.in config.ini @ONLY)
31+
endfunction()
32+
33+
create_test_config()
34+
35+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional)
36+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fuzz)
37+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/util)
38+
39+
function(create_test_script script)
40+
if(MSVC)
41+
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR)
42+
elseif(CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
43+
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR SYMBOLIC)
44+
else()
45+
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/${script})
46+
execute_process(COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script})
47+
endif()
48+
endfunction()
49+
50+
foreach(script functional/test_runner.py fuzz/test_runner.py util/rpcauth-test.py util/test_runner.py)
51+
create_test_script(${script})
52+
endforeach()

0 commit comments

Comments
 (0)