Skip to content

Commit 6da00bb

Browse files
committed
cmake: Add test config and runners
1 parent 20f6d18 commit 6da00bb

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-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")
@@ -149,6 +150,7 @@ else()
149150
endif()
150151

151152
add_subdirectory(src)
153+
add_subdirectory(test)
152154

153155
message("\n")
154156
message("Configure summary")

test/CMakeLists.txt

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
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(ENABLE_TRACING ENABLE_USDT_TRACEPOINTS)
28+
29+
configure_file(config.ini.in config.ini @ONLY)
30+
endfunction()
31+
32+
create_test_config()
33+
34+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional)
35+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fuzz)
36+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/util)
37+
38+
function(create_test_script script)
39+
if(MSVC)
40+
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR)
41+
elseif(CMAKE_VERSION VERSION_GREATER_EQUAL 3.14)
42+
file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR SYMBOLIC)
43+
else()
44+
file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/${script})
45+
execute_process(COMMAND ln -s ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script})
46+
endif()
47+
endfunction()
48+
49+
foreach(script functional/test_runner.py fuzz/test_runner.py util/rpcauth-test.py util/test_runner.py)
50+
create_test_script(${script})
51+
endforeach()

0 commit comments

Comments
 (0)