Code Monkey home page Code Monkey logo

hebasto / bitcoin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bitcoin/bitcoin

19.0 7.0 4.0 282.03 MB

Bitcoin Core integration/staging tree

Home Page: https://bitcoincore.org/en/download

License: MIT License

Makefile 0.76% Shell 1.02% M4 1.10% Python 20.10% C++ 64.46% C 10.55% HTML 0.12% Objective-C++ 0.03% Assembly 0.15% Scheme 0.12% CMake 1.17% Sage 0.31% Cap'n Proto 0.01% Dockerfile 0.03% QMake 0.01% Rust 0.09%
bitcoin-core

bitcoin's Introduction

Bitcoin Core integration/staging tree

https://bitcoincore.org

For an immediately usable, binary version of the Bitcoin Core software, see https://bitcoincore.org/en/download/.

What is Bitcoin Core?

Bitcoin Core connects to the Bitcoin peer-to-peer network to download and fully validate blocks and transactions. It also includes a wallet and graphical user interface, which can be optionally built.

Further information about Bitcoin Core is available in the doc folder.

License

Bitcoin Core is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.

Development Process

The master branch is regularly built (see doc/build-*.md for instructions) and tested, but it is not guaranteed to be completely stable. Tags are created regularly from release branches to indicate new official, stable release versions of Bitcoin Core.

The https://github.com/bitcoin-core/gui repository is used exclusively for the development of the GUI. Its master branch is identical in all monotree repositories. Release branches and tags do not exist, so please do not fork that repository unless it is for development reasons.

The contribution workflow is described in CONTRIBUTING.md and useful hints for developers can be found in doc/developer-notes.md.

Testing

Testing and code review is the bottleneck for development; we get more pull requests than we can review and test on short notice. Please be patient and help out by testing other people's pull requests, and remember this is a security-critical project where any mistake might cost people lots of money.

Automated Testing

Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code. Unit tests can be compiled and run (assuming they weren't disabled during the generation of the build system) with: ctest. Further details on running and extending unit tests can be found in /src/test/README.md.

There are also regression and integration tests, written in Python. These tests can be run (if the test dependencies are installed) with: test/functional/test_runner.py

The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS, and that unit/sanity tests are run automatically.

Manual Quality Assurance (QA) Testing

Changes should be tested by somebody other than the developer who wrote the code. This is especially important for large or high-risk changes. It is useful to add a test plan to the pull request description if testing the changes is not straightforward.

Translations

Changes to translations as well as new translations can be submitted to Bitcoin Core's Transifex page.

Translations are periodically pulled from Transifex and merged into the git repository. See the translation process for details on how this works.

Important: We do not accept translation changes as GitHub pull requests because the next pull from Transifex would automatically overwrite them again.

bitcoin's People

Contributors

achow101 avatar ajtowns avatar dongcarl avatar fanquake avatar fjahr avatar furszy avatar gavinandresen avatar glozow avatar gmaxwell avatar hebasto avatar instagibbs avatar jamesob avatar jnewbery avatar jonasschnelli avatar jonatack avatar laanwj avatar luke-jr avatar meshcollider avatar morcos avatar non-github-bitcoin avatar practicalswift avatar promag avatar ryanofsky avatar sdaftuar avatar sipa avatar sjors avatar thebluematt avatar thestack avatar theuni avatar vasild avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

bitcoin's Issues

cmake: -logsourcelocations file name differences

Is this intentional?

autotools:

  • Linux: [init] [wallet/init.cpp:129] [Construct] Wallet disabled!
  • macos: [init] [wallet/init.cpp:129] [Construct] Wallet disabled!
  • Win: [init] [D:\a\bitcoin-core-with-ci\bitcoin-core-with-ci\src\wallet\init.cpp:129] [Construct] Wallet disabled!

Cmake:

  • Linux: [init] [/home/runner/work/_temp/src/wallet/init.cpp:129] [Construct] Wallet disabled!
  • macos: [init] [/Users/runner/work/bitcoin-core-with-ci/bitcoin-core-with-ci/src/wallet/init.cpp:129] [Construct] Wallet disabled!
  • Win: [init] [D:\a\bitcoin-core-with-ci\bitcoin-core-with-ci\src\wallet\init.cpp:129] [Construct] Wallet disabled!

[RFC] cmake: Build option naming

All build options effectively are cache variables, whose values persist across multiple runs within a project build tree.

From the Professional CMake: A Practical Guide 18th Edition:

Cache variables are primarily intended as a customization point for developers.

The current (@ 9857482) build option set being presented in the CMake GUI tool looks as follows:

Screenshot from 2024-05-08 22-45-52

Please note that selecting the "Grouped" checkbox groups variables together based on the start of the variable name up to the first underscore. CMake reserves names that begin with CMAKE_.

  1. The group of BUILD_* options is presented in the "Executables" and "Tests" sections of the "Configure summary".

Please note, that CMake's CTest module:

automatically creates a BUILD_TESTING option...

  1. The group of WITH_* options is presented in the "Wallet support" and "Optional packages features" section of the "Configure summary".

However, the MULTIPROCESS option has no WITH_ prefix.

  1. Switching to upstream CMake-based build systems for subtrees (see #192) will expose their own options. Thus, libsecp256k1 introduces SECP256K1_* names.

This issue aims to gather suggestions and opinions regarding better naming. Please vote for each suggestion using ๐Ÿ‘ for approval and ๐Ÿ‘Ž for disapproval.

cmake macOS

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

macos-arm64-cmake-13 6 6-22G630

Expected behaviour

cmake-config-done

Steps to reproduce

Ventura 13.5 (22G74)
Cmake version 3.29.0

cmake .

Ventura 13.6.6 (22G630)
CMake version 3.27.4

cmake .

Relevant log output

I know this isn't correct - but I was able to bypass the issue by appending a commit hash to the copied folder names. (off the cuff fix)

Screenshot 2024-04-04 at 5 49 30 PM

diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 904248a715..217d66c7bd 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -32,15 +32,22 @@ endfunction()
 
 create_test_config()
 
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/functional)
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fuzz)
-file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/util)
+file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/test/functional)
+file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/test/fuzz)
+file(MAKE_DIRECTORY ${PROJECT_SOURCE_DIR}/test/util)
 
 function(create_test_script script)
+
+execute_process(COMMAND git rev-parse --short HEAD
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+    OUTPUT_VARIABLE COMMIT_ID
+    OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
   if(MSVC)
-    file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR)
+    file(CREATE_LINK ${PROJECT_SOURCE_DIR}/test/${script} test/${COMMIT_ID}-${script} COPY_ON_ERROR)
   else()
-    file(CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/${script} ${CMAKE_CURRENT_BINARY_DIR}/${script} COPY_ON_ERROR SYMBOLIC)
+    file(CREATE_LINK ${PROJECT_SOURCE_DIR}/test/${script} test/${COMMIT_ID}-${script} COPY_ON_ERROR SYMBOLIC)
   endif()
 endfunction()
 



How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

cmake-staging

Operating system and version

macOS - ventura - intel and arm64

Machine specifications

No response

cmake + Nix/NixOS compatibility

I've looked into compatibility between the cmake-staging branch and Nix/NixOS packaging. I'm using this issue as an tracking issue, let me know if I should move it somewhere else.

Specifically, looking at the following:

  1. nixpkgs: changes required for a cmake build of the Nix bitcoin (with GUI) and bitcoind (without GUI) packages based on https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/applications/blockchains/bitcoin/default.nix. This uses Nix depends.
  2. gunix: changes required for a cmake build of a full depends build (as we do in GUIX). I've been hacking on this in 0xB10C/bitcoind-gunix#1. The latest I've been able to build is 25.0, but haven't spent too much time on it.

I'm only testing x86_64-linux at the moment.

1. nixpkgs on x86_64-linux

Building 5e65a38 with the following patch to the bitcoin/default.nix file seems to mostly work. It fails during the installation of the bash completions, likely because the relative bash completions path isn't compatible with Nix. I can investigate what's needed here. Note that the nixpkgs version has it's own install of the bash completions. If we can skip these in the install phase, that might be an option.

diff --git a/pkgs/applications/blockchains/bitcoin/default.nix b/pkgs/applications/blockchains/bitcoin/default.nix
index f31fea152..c804bf0c9 100644
--- a/pkgs/applications/blockchains/bitcoin/default.nix
+++ b/pkgs/applications/blockchains/bitcoin/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchurl
-, autoreconfHook
+, cmake
 , pkg-config
 , installShellFiles
 , util-linux
@@ -33,18 +33,17 @@ let
 in
 stdenv.mkDerivation rec {
   pname = if withGui then "bitcoin" else "bitcoind";
-  version = "26.0";
-
+  version = "5e65a38896525cdb84f25e0968cc230e147cfc9b";
   src = fetchurl {
     urls = [
-      "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
+      "https://github.com/hebasto/bitcoin/archive/${version}.tar.gz"
     ];
     # hash retrieved from signed SHA256SUMS
-    sha256 = "ab1d99276e28db62d1d9f3901e85ac358d7f1ebcb942d348a9c4e46f0fcdc0a1";
+    sha256 = "sha256-rKfPjUTmyVIJ2Sy8aETA12eXkzcGDy/Rbrj10rNeNj8=";
   };

   nativeBuildInputs =
-    [ autoreconfHook pkg-config installShellFiles ]
+    [ cmake pkg-config installShellFiles ]
     ++ lib.optionals stdenv.isLinux [ util-linux ]
     ++ lib.optionals stdenv.isDarwin [ hexdump ]
     ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ]
...
[ 82%] Built target fuzz
[ 83%] Built target bitcoin-qt
[ 84%] Built target test_bitcoin-qt
[100%] Built target test_bitcoin
Install the project...
-- Install configuration: "Release"
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/bitcoin-qt
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/test_bitcoin-qt
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/bench_bitcoin
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/test_bitcoin
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/bitcoin-wallet
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/bitcoind
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/bitcoin-cli
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/bitcoin-tx
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/bin/bitcoin-util
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/share/man/man1
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/share/man/man1/bitcoin-tx.1
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/share/man/man1/bitcoin-wallet.1
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/share/man/man1/bitcoin-cli.1
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/share/man/man1/bitcoind.1
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/share/man/man1/bitcoin-util.1
-- Installing: /nix/store/4620r11377c07s7fxv87683x3bwral71-bitcoin-5e65a38896525cdb84f25e0968cc230e147cfc9b/share/man/man1/bitcoin-qt.1
install: cannot stat 'contrib/completions/bash/bitcoin-cli.bash': No such file or directory

Full build.log

2. depends build on x86_64-linux

Will update once I have a v26.0 build working and get to cmake. See 0xB10C/bitcoind-gunix#1 (comment).

cmake: No CMAKE_CXX_COMPILER could be found when using Xcode generator

Steps to reproduce:

Arm M1 Mac running MacOS 14.0 (Sonoma)
Xcode 15.4
Apple clang version 15.0.0 (clang-1500.0.40.1)
cmake version 3.29.3

mkdir build
cmake -B build -G Xcode

Output:

-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:53 (enable_language):
  No CMAKE_CXX_COMPILER could be found.

-- Configuring incomplete, errors occurred!

Bad practice to set rule variables?

bitcoin/CMakeLists.txt

Lines 168 to 174 in 4778d28

set(APPEND_CPPFLAGS "" CACHE STRING "Preprocessor flags that are appended to the flags added by the build system.")
set(APPEND_CFLAGS "" CACHE STRING "C compiler flags that are appended to the flags added by the build system.")
set(APPEND_CXXFLAGS "" CACHE STRING "(Objective) C++ compiler flags that are appended to the flags added by the build system.")
set(APPEND_LDFLAGS "" CACHE STRING "Linker flags that are appended to the flags added by the build system.")
string(APPEND CMAKE_CXX_COMPILE_OBJECT " ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}")
string(APPEND CMAKE_CXX_CREATE_SHARED_LIBRARY " ${APPEND_LDFLAGS}")
string(APPEND CMAKE_CXX_LINK_EXECUTABLE " ${APPEND_LDFLAGS}")

(added in 84b83b3)

https://cmake.org/pipermail/cmake/2011-September/046090.html says that we are not supposed to set rule variables such as CMAKE_CXX_COMPILE_OBJECT, or, if we really need to, set use CMAKE_USER_MAKE_RULES_OVERRIDE.

Is this code block supposed to achieve the same as our SECP256K1_LATE_CFLAGS (implemented by a user-defined function all_targets_add_compile_options) in libsecp256k1?

Give more useful error when build dir wasn't specified

I forgot to specify the build dir for cmake (i.e. cmake -DBUILD_BENCH=ON instead of cmake -B build -DBUILD_BENCH=ON) and got the following error

CMake Error at test/CMakeLists.txt:46 (file):
  file CREATE_LINK cannot use same file and newfile

see full log here

If you think it makes sense, could we display a more useful error when build dir isn't specified?
If it doesn't, feel free to close it without explanation.

Policy CMP0167 is not set: The FindBoost module is removed.

cmake version 3.30.0
Testing 240704-cmake-GU @ bbb73b5:

cmake -B build
-- Found Threads: TRUE
CMake Warning (dev) at cmake/module/AddBoostIfNeeded.cmake:21 (find_package):
  Policy CMP0167 is not set: The FindBoost module is removed.  Run "cmake
  --help-policy CMP0167" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

Call Stack (most recent call first):
  CMakeLists.txt:383 (add_boost_if_needed)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found Boost: /opt/homebrew/include (found suitable version "1.85.0", minimum required is "1.73.0")

cmake: Allow overriding/take into account user flags

# Check for ARMv8 SHA-NI intrinsics.
set(ARM_SHANI_CXXFLAGS -march=armv8-a+crypto)

Looks like these don't allow overriding/take into account user flags? i.e If I configure with -DCMAKE_CXX_FLAGS_RELEASE="-march=armv8-a+nocrypto", I'd expect the ARM SHA-NI check to fail, but it doesn't. Also doesn't seem to work with APPEND_CXXFLAGS, which should always be (globally) taken into account?

Originally posted in bitcoin#30454 (comment).

cmake build summary could be clearer

Note: This also affects libsecp256k1, where I noticed it. The summary is similar there, which is a good thing. Reporting here to get more feedback.

Here's a snippet of a build summary from libsecp256k1 (from bitcoin-core/secp256k1#1532 / f55703ba49454fc46226f4846fe292d4a3dfa3ef):

Preprocessor defined macros ........... ENABLE_MODULE_ELLSWIFT=1 ENABLE_MODULE_SCHNORRSIG=1 ENABLE_MODULE_EXTRAKEYS=1 ENABLE_MODULE_RECOVERY=1 ENABLE_MODULE_ECDH=1 ECMULT_WINDOW_SIZE=15 COMB_BLOCKS=11 COMB_TEETH=6 USE_ASM_X86_64=1 VALGRIND
C compiler ............................ Clang 17.0.6, /usr/lib/ccache/bin/clang
CFLAGS ................................ -fsanitize=memory -O2
Compile options ....................... -pedantic -Wall -Wcast-align -Wconditional-uninitialized -Wextra -Wnested-externs -Wno-long-long -Wno-overlength-strings -Wno-unused-function -Wreserved-identifier -Wshadow -Wstrict-prototypes -Wundef -fno-sanitize-memory-param-retval
Build type:
 - CMAKE_BUILD_TYPE ................... RelWithDebInfo
 - CFLAGS ............................. -O2 -g 
 - LDFLAGS for executables ............ 
 - LDFLAGS for shared libraries ....... 

I think, the entries are a bit confusing, both for people unfamiliar with CMake, but also even for people who know about CMake's internals:

  • There are two entries for "CFLAGS" plus "compile options", which has also some CFLAGS.
  • There's just the term "Preprocessor defined macros", but no mention of CPPFLAGS.

I'm not sure what the best way is to resolve this, but I'm thinking something like this, i.e., have textual descriptions for the "normal" dev and perhaps also CMake's internal names for build system experts (not sure if that's too much):

CPPFLAGS for the main source directory (COMPILE_DEFINITIONS) .....
CFLAGS applied globally (CMAKE_C_FLAGS) .....
CFLAGS for the main source directory (COMPILE_OPTIONS) .....
CFLAGS implied by the build type .....

This is just a sketch, it can certainly be improved a lot, and some bike-shedding will be necessary. And note that I know a bit about CMake, but I'm certainly not an expert, so I'm not exactly sure if my interpretation is even correct.

Ideally, the listing of flag variables would be in the same order as they'll appear on the final compiler command line. Not sure if this is even possible considering all special cases, etc, but it will be good as a rule of thumb.

cmake: Individual functional tests cannot be run

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

Running an individual functional test directly is not possible as the files do not exist in the out of tree build. For example, trying to run test/functional/wallet_basic.py from the build dir is not possible.

Expected behaviour

It should be possible to run all functional tests directly. Furthermore, these should be symlinked as making changes to the test in the source directory should result in the executed test also changing without needing a rebuild.

Steps to reproduce

Build normally. Run a functional test by providing the relative path to it as if you were in the root of the source directory.

Relevant log output

No response

How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

c1e1967

Operating system and version

Arch

Machine specifications

No response

2 c-tests are failing on a win cross-build from the cmake-staging branch

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

Performing tests on PR #54 cross-built the binaries for Windows on WSL with Ubuntu 22.04, due to 2 ctests failing and following suggestion from @hebasto to check cmake-staging I see the same tests are also failing on this cmake base branch:

The following tests FAILED:
          3 - bench_sanity_check_high_priority (Failed)
         87 - streams_tests:streams_tests.cpp (Failed)
Errors while running CTest

ctest full results
ctest -j $(nproc)
Test project /home/ubunpolk/src/bitcoin-hebasto/build
        Start   1: util_test_runner
        Start   2: util_rpcauth_test
        Start   3: bench_sanity_check_high_priority
        Start   4: addrman_tests:addrman_tests.cpp
        Start   5: allocator_tests:allocator_tests.cpp
        Start   6: amount_tests:amount_tests.cpp
        Start   7: argsman_tests:argsman_tests.cpp
        Start   8: arith_uint256_tests:arith_uint256_tests.cpp
        Start   9: banman_tests:banman_tests.cpp
        Start  10: base32_tests:base32_tests.cpp
        Start  11: base58_tests:base58_tests.cpp
        Start  12: base64_tests:base64_tests.cpp
        Start  13: bech32_tests:bech32_tests.cpp
        Start  14: bip32_tests:bip32_tests.cpp
        Start  15: bip324_tests:bip324_tests.cpp
        Start  16: blockchain_tests:blockchain_tests.cpp
  1/125 Test   #2: util_rpcauth_test ...........................................................   Passed    0.05 sec
        Start  17: blockencodings_tests:blockencodings_tests.cpp
  2/125 Test   #5: allocator_tests:allocator_tests.cpp .........................................   Passed    1.93 sec
        Start  18: blockfilter_index_tests:blockfilter_index_tests.cpp
  3/125 Test   #6: amount_tests:amount_tests.cpp ...............................................   Passed    1.93 sec
        Start  19: blockfilter_tests:blockfilter_tests.cpp
  4/125 Test   #8: arith_uint256_tests:arith_uint256_tests.cpp .................................   Passed    1.93 sec
        Start  20: blockmanager_tests:blockmanager_tests.cpp
  5/125 Test  #12: base64_tests:base64_tests.cpp ...............................................   Passed    1.93 sec
        Start  21: bloom_tests:bloom_tests.cpp
  6/125 Test   #9: banman_tests:banman_tests.cpp ...............................................   Passed    1.94 sec
        Start  22: bswap_tests:bswap_tests.cpp
  7/125 Test  #10: base32_tests:base32_tests.cpp ...............................................   Passed    1.94 sec
        Start  23: checkqueue_tests:checkqueue_tests.cpp
  8/125 Test  #16: blockchain_tests:blockchain_tests.cpp .......................................   Passed    2.02 sec
        Start  24: coins_tests:coins_tests.cpp
  9/125 Test  #13: bech32_tests:bech32_tests.cpp ...............................................   Passed    2.06 sec
        Start  25: coinstatsindex_tests:coinstatsindex_tests.cpp
 10/125 Test  #14: bip32_tests:bip32_tests.cpp .................................................   Passed    2.07 sec
        Start  26: compilerbug_tests:compilerbug_tests.cpp
 11/125 Test  #11: base58_tests:base58_tests.cpp ...............................................   Passed    2.20 sec
        Start  27: compress_tests:compress_tests.cpp
 12/125 Test  #17: blockencodings_tests:blockencodings_tests.cpp ...............................   Passed    2.17 sec
        Start  28: crypto_tests:crypto_tests.cpp
 13/125 Test   #4: addrman_tests:addrman_tests.cpp .............................................   Passed    2.47 sec
        Start  29: cuckoocache_tests:cuckoocache_tests.cpp
 14/125 Test   #3: bench_sanity_check_high_priority ............................................***Failed    2.68 sec
        Start  30: dbwrapper_tests:dbwrapper_tests.cpp
 15/125 Test  #15: bip324_tests:bip324_tests.cpp ...............................................   Passed    2.74 sec
        Start  31: denialofservice_tests:denialofservice_tests.cpp
 16/125 Test  #19: blockfilter_tests:blockfilter_tests.cpp .....................................   Passed    1.48 sec
        Start  32: descriptor_tests:descriptor_tests.cpp
 17/125 Test  #21: bloom_tests:bloom_tests.cpp .................................................   Passed    1.48 sec
        Start  33: disconnected_transactions:disconnected_transactions.cpp
 18/125 Test  #22: bswap_tests:bswap_tests.cpp .................................................   Passed    1.51 sec
        Start  34: flatfile_tests:flatfile_tests.cpp
 19/125 Test  #26: compilerbug_tests:compilerbug_tests.cpp .....................................   Passed    1.68 sec
        Start  35: fs_tests:fs_tests.cpp
 20/125 Test  #27: compress_tests:compress_tests.cpp ...........................................   Passed    1.85 sec
        Start  36: getarg_tests:getarg_tests.cpp
 21/125 Test  #31: denialofservice_tests:denialofservice_tests.cpp .............................   Passed    1.56 sec
        Start  37: hash_tests:hash_tests.cpp
 22/125 Test   #7: argsman_tests:argsman_tests.cpp .............................................   Passed    4.48 sec
        Start  38: headers_sync_chainwork_tests:headers_sync_chainwork_tests.cpp
 23/125 Test  #30: dbwrapper_tests:dbwrapper_tests.cpp .........................................   Passed    1.81 sec
        Start  39: httpserver_tests:httpserver_tests.cpp
 24/125 Test  #34: flatfile_tests:flatfile_tests.cpp ...........................................   Passed    1.42 sec
        Start  40: i2p_tests:i2p_tests.cpp
 25/125 Test  #29: cuckoocache_tests:cuckoocache_tests.cpp .....................................   Passed    2.76 sec
        Start  41: interfaces_tests:interfaces_tests.cpp
 26/125 Test  #35: fs_tests:fs_tests.cpp .......................................................   Passed    1.48 sec
        Start  42: key_io_tests:key_io_tests.cpp
 27/125 Test  #32: descriptor_tests:descriptor_tests.cpp .......................................   Passed    2.18 sec
        Start  43: key_tests:key_tests.cpp
 28/125 Test  #36: getarg_tests:getarg_tests.cpp ...............................................   Passed    1.67 sec
        Start  44: logging_tests:logging_tests.cpp
 29/125 Test  #37: hash_tests:hash_tests.cpp ...................................................   Passed    1.49 sec
        Start  45: mempool_tests:mempool_tests.cpp
 30/125 Test  #39: httpserver_tests:httpserver_tests.cpp .......................................   Passed    1.64 sec
        Start  46: merkle_tests:merkle_tests.cpp
 31/125 Test  #38: headers_sync_chainwork_tests:headers_sync_chainwork_tests.cpp ...............   Passed    1.83 sec
        Start  47: merkleblock_tests:merkleblock_tests.cpp
 32/125 Test  #40: i2p_tests:i2p_tests.cpp .....................................................   Passed    1.55 sec
        Start  48: miner_tests:miner_tests.cpp
 33/125 Test  #42: key_io_tests:key_io_tests.cpp ...............................................   Passed    1.43 sec
        Start  49: miniminer_tests:miniminer_tests.cpp
 34/125 Test  #33: disconnected_transactions:disconnected_transactions.cpp .....................   Passed    3.78 sec
        Start  50: miniscript_tests:miniscript_tests.cpp
 35/125 Test  #43: key_tests:key_tests.cpp .....................................................   Passed    1.63 sec
        Start  51: minisketch_tests:minisketch_tests.cpp
 36/125 Test  #44: logging_tests:logging_tests.cpp .............................................   Passed    1.61 sec
        Start  52: multisig_tests:multisig_tests.cpp
 37/125 Test  #28: crypto_tests:crypto_tests.cpp ...............................................   Passed    5.17 sec
        Start  53: net_peer_connection_tests:net_peer_connection_tests.cpp
 38/125 Test  #45: mempool_tests:mempool_tests.cpp .............................................   Passed    1.60 sec
        Start  54: net_peer_eviction_tests:net_peer_eviction_tests.cpp
 39/125 Test  #47: merkleblock_tests:merkleblock_tests.cpp .....................................   Passed    1.50 sec
        Start  55: net_tests:net_tests.cpp
 40/125 Test  #23: checkqueue_tests:checkqueue_tests.cpp .......................................   Passed    6.20 sec
        Start  56: netbase_tests:netbase_tests.cpp
 41/125 Test  #20: blockmanager_tests:blockmanager_tests.cpp ...................................   Passed    6.69 sec
        Start  57: orphanage_tests:orphanage_tests.cpp
 42/125 Test  #53: net_peer_connection_tests:net_peer_connection_tests.cpp .....................   Passed    1.28 sec
        Start  58: pmt_tests:pmt_tests.cpp
 43/125 Test  #52: multisig_tests:multisig_tests.cpp ...........................................   Passed    1.35 sec
        Start  59: policy_fee_tests:policy_fee_tests.cpp
 44/125 Test  #18: blockfilter_index_tests:blockfilter_index_tests.cpp .........................   Passed    6.85 sec
        Start  60: policyestimator_tests:policyestimator_tests.cpp
 45/125 Test  #46: merkle_tests:merkle_tests.cpp ...............................................   Passed    2.67 sec
        Start  61: pool_tests:pool_tests.cpp
 46/125 Test  #51: minisketch_tests:minisketch_tests.cpp .......................................   Passed    1.57 sec
        Start  62: pow_tests:pow_tests.cpp
 47/125 Test  #54: net_peer_eviction_tests:net_peer_eviction_tests.cpp .........................   Passed    1.73 sec
        Start  63: prevector_tests:prevector_tests.cpp
 48/125 Test  #56: netbase_tests:netbase_tests.cpp .............................................   Passed    1.48 sec
        Start  64: raii_event_tests:raii_event_tests.cpp
 49/125 Test  #59: policy_fee_tests:policy_fee_tests.cpp .......................................   Passed    1.37 sec
        Start  65: random_tests:random_tests.cpp
 50/125 Test  #57: orphanage_tests:orphanage_tests.cpp .........................................   Passed    1.66 sec
        Start  66: rbf_tests:rbf_tests.cpp
 51/125 Test  #61: pool_tests:pool_tests.cpp ...................................................   Passed    1.55 sec
        Start  67: rest_tests:rest_tests.cpp
 52/125 Test  #62: pow_tests:pow_tests.cpp .....................................................   Passed    1.81 sec
        Start  68: result_tests:result_tests.cpp
 53/125 Test  #60: policyestimator_tests:policyestimator_tests.cpp .............................   Passed    2.10 sec
        Start  69: reverselock_tests:reverselock_tests.cpp
 54/125 Test  #58: pmt_tests:pmt_tests.cpp .....................................................   Passed    2.25 sec
        Start  70: rpc_tests:rpc_tests.cpp
 55/125 Test  #64: raii_event_tests:raii_event_tests.cpp .......................................   Passed    1.51 sec
        Start  71: sanity_tests:sanity_tests.cpp
 56/125 Test  #25: coinstatsindex_tests:coinstatsindex_tests.cpp ...............................   Passed    9.39 sec
        Start  72: scheduler_tests:scheduler_tests.cpp
 57/125 Test  #63: prevector_tests:prevector_tests.cpp .........................................   Passed    2.36 sec
        Start  73: script_p2sh_tests:script_p2sh_tests.cpp
 58/125 Test  #67: rest_tests:rest_tests.cpp ...................................................   Passed    1.34 sec
        Start  74: script_parse_tests:script_parse_tests.cpp
 59/125 Test  #65: random_tests:random_tests.cpp ...............................................   Passed    1.74 sec
        Start  75: script_segwit_tests:script_segwit_tests.cpp
 60/125 Test  #50: miniscript_tests:miniscript_tests.cpp .......................................   Passed    4.63 sec
        Start  76: script_standard_tests:script_standard_tests.cpp
 61/125 Test  #68: result_tests:result_tests.cpp ...............................................   Passed    1.56 sec
        Start  77: script_tests:script_tests.cpp
 62/125 Test  #69: reverselock_tests:reverselock_tests.cpp .....................................   Passed    1.43 sec
        Start  78: scriptnum_tests:scriptnum_tests.cpp
 63/125 Test  #71: sanity_tests:sanity_tests.cpp ...............................................   Passed    1.60 sec
        Start  79: serfloat_tests:serfloat_tests.cpp
 64/125 Test  #70: rpc_tests:rpc_tests.cpp .....................................................   Passed    1.86 sec
        Start  80: serialize_tests:serialize_tests.cpp
 65/125 Test  #73: script_p2sh_tests:script_p2sh_tests.cpp .....................................   Passed    1.45 sec
        Start  81: settings_tests:settings_tests.cpp
 66/125 Test  #72: scheduler_tests:scheduler_tests.cpp .........................................   Passed    1.50 sec
        Start  82: sighash_tests:sighash_tests.cpp
 67/125 Test  #74: script_parse_tests:script_parse_tests.cpp ...................................   Passed    1.54 sec
        Start  83: sigopcount_tests:sigopcount_tests.cpp
 68/125 Test  #76: script_standard_tests:script_standard_tests.cpp .............................   Passed    1.45 sec
        Start  84: skiplist_tests:skiplist_tests.cpp
 69/125 Test  #75: script_segwit_tests:script_segwit_tests.cpp .................................   Passed    1.53 sec
        Start  85: sock_tests:sock_tests.cpp
 70/125 Test  #55: net_tests:net_tests.cpp .....................................................   Passed    5.69 sec
        Start  86: span_tests:span_tests.cpp
 71/125 Test  #78: scriptnum_tests:scriptnum_tests.cpp .........................................   Passed    1.45 sec
        Start  87: streams_tests:streams_tests.cpp
 72/125 Test  #48: miner_tests:miner_tests.cpp .................................................   Passed    7.38 sec
        Start  88: sync_tests:sync_tests.cpp
 73/125 Test  #66: rbf_tests:rbf_tests.cpp .....................................................   Passed    3.81 sec
        Start  89: system_tests:system_tests.cpp
 74/125 Test  #81: settings_tests:settings_tests.cpp ...........................................   Passed    1.50 sec
        Start  90: timedata_tests:timedata_tests.cpp
 75/125 Test  #80: serialize_tests:serialize_tests.cpp .........................................   Passed    1.77 sec
        Start  91: torcontrol_tests:torcontrol_tests.cpp
 76/125 Test  #86: span_tests:span_tests.cpp ...................................................   Passed    1.38 sec
        Start  92: transaction_tests:transaction_tests.cpp
 77/125 Test  #83: sigopcount_tests:sigopcount_tests.cpp .......................................   Passed    1.68 sec
        Start  93: translation_tests:translation_tests.cpp
 78/125 Test  #85: sock_tests:sock_tests.cpp ...................................................   Passed    1.59 sec
        Start  94: txindex_tests:txindex_tests.cpp
 79/125 Test  #77: script_tests:script_tests.cpp ...............................................   Passed    2.96 sec
        Start  95: txpackage_tests:txpackage_tests.cpp
 80/125 Test  #82: sighash_tests:sighash_tests.cpp .............................................   Passed    2.43 sec
        Start  96: txreconciliation_tests:txreconciliation_tests.cpp
 81/125 Test  #84: skiplist_tests:skiplist_tests.cpp ...........................................   Passed    2.14 sec
        Start  97: txrequest_tests:txrequest_tests.cpp
 82/125 Test  #89: system_tests:system_tests.cpp ...............................................   Passed    1.34 sec
        Start  98: txvalidation_tests:txvalidation_tests.cpp
 83/125 Test  #88: sync_tests:sync_tests.cpp ...................................................   Passed    1.67 sec
        Start  99: txvalidationcache_tests:txvalidationcache_tests.cpp
 84/125 Test  #87: streams_tests:streams_tests.cpp .............................................***Failed    1.74 sec
        Start 100: uint256_tests:uint256_tests.cpp
 85/125 Test  #79: serfloat_tests:serfloat_tests.cpp ...........................................   Passed    2.83 sec
        Start 101: util_tests:util_tests.cpp
 86/125 Test  #91: torcontrol_tests:torcontrol_tests.cpp .......................................   Passed    1.37 sec
        Start 102: util_threadnames_tests:util_threadnames_tests.cpp
 87/125 Test  #90: timedata_tests:timedata_tests.cpp ...........................................   Passed    1.55 sec
        Start 103: validation_block_tests:validation_block_tests.cpp
 88/125 Test  #93: translation_tests:translation_tests.cpp .....................................   Passed    1.59 sec
        Start 104: validation_chainstate_tests:validation_chainstate_tests.cpp
 89/125 Test #100: uint256_tests:uint256_tests.cpp .............................................   Passed    1.49 sec
        Start 105: validation_chainstatemanager_tests:validation_chainstatemanager_tests.cpp
 90/125 Test  #96: txreconciliation_tests:txreconciliation_tests.cpp ...........................   Passed    1.67 sec
        Start 106: validation_flush_tests:validation_flush_tests.cpp
 91/125 Test #101: util_tests:util_tests.cpp ...................................................   Passed    1.86 sec
        Start 107: validation_tests:validation_tests.cpp
 92/125 Test #102: util_threadnames_tests:util_threadnames_tests.cpp ...........................   Passed    1.60 sec
        Start 108: validationinterface_tests:validationinterface_tests.cpp
 93/125 Test #106: validation_flush_tests:validation_flush_tests.cpp ...........................   Passed    1.54 sec
        Start 109: versionbits_tests:versionbits_tests.cpp
 94/125 Test #107: validation_tests:validation_tests.cpp .......................................   Passed    1.68 sec
        Start 110: xoroshiro128plusplus_tests:xoroshiro128plusplus_tests.cpp
 95/125 Test #108: validationinterface_tests:validationinterface_tests.cpp .....................   Passed    1.65 sec
        Start 111: coinselector_tests:../wallet/test/coinselector_tests.cpp
 96/125 Test  #97: txrequest_tests:txrequest_tests.cpp .........................................   Passed    4.89 sec
        Start 112: feebumper_tests:../wallet/test/feebumper_tests.cpp
 97/125 Test  #24: coins_tests:coins_tests.cpp .................................................   Passed   18.35 sec
        Start 113: group_outputs_tests:../wallet/test/group_outputs_tests.cpp
 98/125 Test  #94: txindex_tests:txindex_tests.cpp .............................................   Passed    5.65 sec
        Start 114: init_tests:../wallet/test/init_tests.cpp
 99/125 Test #110: xoroshiro128plusplus_tests:xoroshiro128plusplus_tests.cpp ...................   Passed    1.51 sec
        Start 115: ismine_tests:../wallet/test/ismine_tests.cpp
100/125 Test  #98: txvalidation_tests:txvalidation_tests.cpp ...................................   Passed    5.31 sec
        Start 116: psbt_wallet_tests:../wallet/test/psbt_wallet_tests.cpp
101/125 Test #112: feebumper_tests:../wallet/test/feebumper_tests.cpp ..........................   Passed    1.51 sec
        Start 117: wallet_util_tests:../wallet/test/rpc_util_tests.cpp
102/125 Test #115: ismine_tests:../wallet/test/ismine_tests.cpp ................................   Passed    1.50 sec
        Start 118: scriptpubkeyman_tests:../wallet/test/scriptpubkeyman_tests.cpp
103/125 Test #104: validation_chainstate_tests:validation_chainstate_tests.cpp .................   Passed    5.73 sec
        Start 119: spend_tests:../wallet/test/spend_tests.cpp
104/125 Test #114: init_tests:../wallet/test/init_tests.cpp ....................................   Passed    1.77 sec
        Start 120: wallet_crypto_tests:../wallet/test/wallet_crypto_tests.cpp
105/125 Test #116: psbt_wallet_tests:../wallet/test/psbt_wallet_tests.cpp ......................   Passed    1.99 sec
        Start 121: wallet_tests:../wallet/test/wallet_tests.cpp
106/125 Test  #49: miniminer_tests:miniminer_tests.cpp .........................................   Passed   16.08 sec
        Start 122: wallet_transaction_tests:../wallet/test/wallet_transaction_tests.cpp
107/125 Test #109: versionbits_tests:versionbits_tests.cpp .....................................   Passed    4.38 sec
        Start 123: walletdb_tests:../wallet/test/walletdb_tests.cpp
108/125 Test #113: group_outputs_tests:../wallet/test/group_outputs_tests.cpp ..................   Passed    2.74 sec
        Start 124: walletload_tests:../wallet/test/walletload_tests.cpp
109/125 Test #117: wallet_util_tests:../wallet/test/rpc_util_tests.cpp .........................   Passed    1.47 sec
        Start 125: db_tests:../wallet/test/db_tests.cpp
110/125 Test #118: scriptpubkeyman_tests:../wallet/test/scriptpubkeyman_tests.cpp ..............   Passed    1.68 sec
111/125 Test #122: wallet_transaction_tests:../wallet/test/wallet_transaction_tests.cpp ........   Passed    1.54 sec
112/125 Test  #41: interfaces_tests:interfaces_tests.cpp .......................................   Passed   19.15 sec
113/125 Test  #99: txvalidationcache_tests:txvalidationcache_tests.cpp .........................   Passed    9.94 sec
114/125 Test #123: walletdb_tests:../wallet/test/walletdb_tests.cpp ............................   Passed    2.64 sec
115/125 Test #125: db_tests:../wallet/test/db_tests.cpp ........................................   Passed    2.73 sec
116/125 Test #120: wallet_crypto_tests:../wallet/test/wallet_crypto_tests.cpp ..................   Passed    3.87 sec
117/125 Test  #92: transaction_tests:transaction_tests.cpp .....................................   Passed   12.48 sec
118/125 Test #124: walletload_tests:../wallet/test/walletload_tests.cpp ........................   Passed    4.78 sec
119/125 Test #119: spend_tests:../wallet/test/spend_tests.cpp ..................................   Passed    8.93 sec
120/125 Test  #95: txpackage_tests:txpackage_tests.cpp .........................................   Passed   19.15 sec
121/125 Test #111: coinselector_tests:../wallet/test/coinselector_tests.cpp ....................   Passed   18.86 sec
122/125 Test #103: validation_block_tests:validation_block_tests.cpp ...........................   Passed   35.70 sec
123/125 Test #105: validation_chainstatemanager_tests:validation_chainstatemanager_tests.cpp ...   Passed   36.14 sec
124/125 Test #121: wallet_tests:../wallet/test/wallet_tests.cpp ................................   Passed   31.10 sec
125/125 Test   #1: util_test_runner ............................................................   Passed   59.47 sec

98% tests passed, 2 tests failed out of 125

Total Test time (real) =  59.47 sec

The following tests FAILED:
          3 - bench_sanity_check_high_priority (Failed)
         87 - streams_tests:streams_tests.cpp (Failed)
Errors while running CTest
Output from these tests are in: /home/ubunpolk/src/bitcoin-hebasto/build/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
ctest rerun failures results
ctest -j $(nproc) --rerun-failed --output-on-failure
Test project /home/ubunpolk/src/bitcoin-hebasto/build
    Start  3: bench_sanity_check_high_priority
    Start 87: streams_tests:streams_tests.cpp
1/2 Test #87: streams_tests:streams_tests.cpp ....***Failed    1.09 sec
Running 10 test cases...
unknown location(0): fatal error: in "streams_tests/xor_file": std::ios_base::failure[abi:cxx11]: AutoFile::write: file handle is nullptr: iostream error
/home/ubunpolk/src/bitcoin-hebasto/src/test/streams_tests.cpp(29): last checkpoint

*** 1 failure is detected in the test module "Bitcoin Core Test Suite"

2/2 Test  #3: bench_sanity_check_high_priority ...***Failed    1.19 sec
Running with -sanity-check option, output is being suppressed as benchmark results will be useless.
Error: bad optional access


0% tests passed, 2 tests failed out of 2

Total Test time (real) =   1.19 sec

The following tests FAILED:
          3 - bench_sanity_check_high_priority (Failed)
         87 - streams_tests:streams_tests.cpp (Failed)
Errors while running CTest

On the same machine platform rebuild the system from master and executed make check successfully.

tests run fine on autotooling
make -j "$(($(nproc)+1))" check
Making check in src
make[1]: Entering directory '/home/ubunpolk/src/bitcoin/src'
make[2]: Entering directory '/home/ubunpolk/src/bitcoin/src'
make[3]: Entering directory '/home/ubunpolk/src/bitcoin'
make[3]: Leaving directory '/home/ubunpolk/src/bitcoin'
  GEN      obj/build.h
make  minisketch/test
make[3]: Entering directory '/home/ubunpolk/src/bitcoin/src'
  CXX      minisketch/src/test-test.o
  CXXLD    minisketch/test
make[3]: Leaving directory '/home/ubunpolk/src/bitcoin/src'
make  check-TESTS check-local
make[3]: Entering directory '/home/ubunpolk/src/bitcoin/src'
Running tests: bech32_tests from test/bech32_tests.cpp
Running tests: bip324_tests from test/bip324_tests.cpp
Running tests: addrman_tests from test/addrman_tests.cpp
Running tests: blockfilter_index_tests from test/blockfilter_index_tests.cpp
Running tests: base64_tests from test/base64_tests.cpp
Running tests: blockchain_tests from test/blockchain_tests.cpp
Running tests: amount_tests from test/amount_tests.cpp
Running tests: allocator_tests from test/allocator_tests.cpp
Running tests: blockencodings_tests from test/blockencodings_tests.cpp
Running tests: base32_tests from test/base32_tests.cpp
Running tests: banman_tests from test/banman_tests.cpp
Running tests: arith_uint256_tests from test/arith_uint256_tests.cpp
Running tests: blockfilter_tests from test/blockfilter_tests.cpp
Running tests: argsman_tests from test/argsman_tests.cpp
Running tests: base58_tests from test/base58_tests.cpp
Running tests: bip32_tests from test/bip32_tests.cpp
Running tests: blockmanager_tests from test/blockmanager_tests.cpp
Running tests: bloom_tests from test/bloom_tests.cpp
Running tests: checkqueue_tests from test/checkqueue_tests.cpp
Running tests: bswap_tests from test/bswap_tests.cpp
Running tests: compilerbug_tests from test/compilerbug_tests.cpp
Running tests: coinstatsindex_tests from test/coinstatsindex_tests.cpp
Running tests: coins_tests from test/coins_tests.cpp
Running tests: compress_tests from test/compress_tests.cpp
Running tests: crypto_tests from test/crypto_tests.cpp
Running tests: cuckoocache_tests from test/cuckoocache_tests.cpp
Running tests: denialofservice_tests from test/denialofservice_tests.cpp
Running tests: dbwrapper_tests from test/dbwrapper_tests.cpp
Running tests: descriptor_tests from test/descriptor_tests.cpp
Running tests: disconnected_transactions from test/disconnected_transactions.cpp
Running tests: flatfile_tests from test/flatfile_tests.cpp
Running tests: fs_tests from test/fs_tests.cpp
Running tests: getarg_tests from test/getarg_tests.cpp
Running tests: hash_tests from test/hash_tests.cpp
Running tests: headers_sync_chainwork_tests from test/headers_sync_chainwork_tests.cpp
Running tests: i2p_tests from test/i2p_tests.cpp
Running tests: httpserver_tests from test/httpserver_tests.cpp
Running tests: interfaces_tests from test/interfaces_tests.cpp
Running tests: key_io_tests from test/key_io_tests.cpp
Running tests: key_tests from test/key_tests.cpp
Running tests: logging_tests from test/logging_tests.cpp
Running tests: mempool_tests from test/mempool_tests.cpp
Running tests: merkle_tests from test/merkle_tests.cpp
Running tests: merkleblock_tests from test/merkleblock_tests.cpp
Running tests: miniscript_tests from test/miniscript_tests.cpp
Running tests: miner_tests from test/miner_tests.cpp
Running tests: miniminer_tests from test/miniminer_tests.cpp
Running tests: minisketch_tests from test/minisketch_tests.cpp
Running tests: multisig_tests from test/multisig_tests.cpp
Running tests: net_tests from test/net_tests.cpp
Running tests: net_peer_connection_tests from test/net_peer_connection_tests.cpp
Running tests: net_peer_eviction_tests from test/net_peer_eviction_tests.cpp
Running tests: netbase_tests from test/netbase_tests.cpp
Running tests: orphanage_tests from test/orphanage_tests.cpp
make[4]: Entering directory '/home/ubunpolk/src/bitcoin/src'
Running tests: pmt_tests from test/pmt_tests.cpp
Running tests: policy_fee_tests from test/policy_fee_tests.cpp
Running tests: policyestimator_tests from test/policyestimator_tests.cpp
Running tests: pool_tests from test/pool_tests.cpp
Running tests: pow_tests from test/pow_tests.cpp
Running tests: prevector_tests from test/prevector_tests.cpp
Running tests: raii_event_tests from test/raii_event_tests.cpp
Running tests: random_tests from test/random_tests.cpp
PASS: univalue/test/object
Running tests: rbf_tests from test/rbf_tests.cpp
make[5]: Entering directory '/home/ubunpolk/src/bitcoin'
make[5]: Leaving directory '/home/ubunpolk/src/bitcoin'
PASS: univalue/test/unitester
Running tests: rest_tests from test/rest_tests.cpp
Running tests: result_tests from test/result_tests.cpp
Running tests: reverselock_tests from test/reverselock_tests.cpp
Running tests: rpc_tests from test/rpc_tests.cpp
Running tests: sanity_tests from test/sanity_tests.cpp
Running tests: scheduler_tests from test/scheduler_tests.cpp
Running tests: script_p2sh_tests from test/script_p2sh_tests.cpp
Running tests: script_parse_tests from test/script_parse_tests.cpp
Running tests: script_segwit_tests from test/script_segwit_tests.cpp
Running tests: script_standard_tests from test/script_standard_tests.cpp
Running tests: scriptnum_tests from test/scriptnum_tests.cpp
Running tests: script_tests from test/script_tests.cpp
Running tests: serfloat_tests from test/serfloat_tests.cpp
  GEN      obj/build.h
Running tests: serialize_tests from test/serialize_tests.cpp
Running tests: settings_tests from test/settings_tests.cpp
Running tests: sighash_tests from test/sighash_tests.cpp
Running tests: sigopcount_tests from test/sigopcount_tests.cpp
Running tests: skiplist_tests from test/skiplist_tests.cpp
Running tests: sock_tests from test/sock_tests.cpp
Running tests: span_tests from test/span_tests.cpp
Running tests: streams_tests from test/streams_tests.cpp
Running tests: sync_tests from test/sync_tests.cpp
Running tests: system_tests from test/system_tests.cpp
Running tests: timedata_tests from test/timedata_tests.cpp
Running tests: torcontrol_tests from test/torcontrol_tests.cpp
Running tests: transaction_tests from test/transaction_tests.cpp
Running tests: translation_tests from test/translation_tests.cpp
Running tests: txindex_tests from test/txindex_tests.cpp
Running tests: txpackage_tests from test/txpackage_tests.cpp
Running tests: txreconciliation_tests from test/txreconciliation_tests.cpp
Running tests: txrequest_tests from test/txrequest_tests.cpp
Running tests: txvalidation_tests from test/txvalidation_tests.cpp
Running tests: txvalidationcache_tests from test/txvalidationcache_tests.cpp
Running tests: uint256_tests from test/uint256_tests.cpp
Running tests: util_tests from test/util_tests.cpp
Running tests: util_threadnames_tests from test/util_threadnames_tests.cpp
Running tests: validation_block_tests from test/validation_block_tests.cpp
Running tests: validation_chainstate_tests from test/validation_chainstate_tests.cpp
Running tests: validation_chainstatemanager_tests from test/validation_chainstatemanager_tests.cpp
Running tests: validation_flush_tests from test/validation_flush_tests.cpp
Running tests: validationinterface_tests from test/validationinterface_tests.cpp
Running tests: validation_tests from test/validation_tests.cpp
Running tests: versionbits_tests from test/versionbits_tests.cpp
Running tests: xoroshiro128plusplus_tests from test/xoroshiro128plusplus_tests.cpp
Running tests: feebumper_tests from wallet/test/feebumper_tests.cpp
Running tests: psbt_wallet_tests from wallet/test/psbt_wallet_tests.cpp
Running tests: spend_tests from wallet/test/spend_tests.cpp
Running tests: wallet_tests from wallet/test/wallet_tests.cpp
Running tests: walletdb_tests from wallet/test/walletdb_tests.cpp
Running tests: wallet_crypto_tests from wallet/test/wallet_crypto_tests.cpp
Running tests: wallet_transaction_tests from wallet/test/wallet_transaction_tests.cpp
Running tests: coinselector_tests from wallet/test/coinselector_tests.cpp
Running tests: init_tests from wallet/test/init_tests.cpp
Running tests: ismine_tests from wallet/test/ismine_tests.cpp
Running tests: wallet_util_tests from wallet/test/rpc_util_tests.cpp
Running tests: scriptpubkeyman_tests from wallet/test/scriptpubkeyman_tests.cpp
Running tests: walletload_tests from wallet/test/walletload_tests.cpp
Running tests: group_outputs_tests from wallet/test/group_outputs_tests.cpp
PASS: minisketch/test
PASS: qt/test/test_bitcoin-qt
============================================================================
Testsuite summary for Bitcoin Core 26.99.0
============================================================================
# TOTAL: 4
# PASS:  4
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/home/ubunpolk/src/bitcoin/src'
Running test/util/test_runner.py...
/usr/bin/python3.10 ../test/util/test_runner.py
Running test/util/rpcauth-test.py...
/usr/bin/python3.10 ../test/util/rpcauth-test.py
...
----------------------------------------------------------------------
Ran 3 tests in 0.005s

OK
Running bench/bench_bitcoin (one iteration sanity check, only high priority)...
bench/bench_bitcoin -sanity-check -priority-level=high
Running with -sanity-check option, output is being suppressed as benchmark results will be useless.
make[4]: Entering directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
make  check-am
make[5]: Entering directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
  CC       src/noverify_tests-tests.o
  CC       src/tests-tests.o
  CC       src/exhaustive_tests-tests_exhaustive.o
  CCLD     exhaustive_tests
  CCLD     noverify_tests
  CCLD     tests
make  check-TESTS
make[6]: Entering directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
make[7]: Entering directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
PASS: exhaustive_tests
PASS: noverify_tests
PASS: tests
============================================================================
Testsuite summary for libsecp256k1 0.4.0
============================================================================
# TOTAL: 3
# PASS:  3
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[7]: Leaving directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
make[6]: Leaving directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
make[5]: Leaving directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
make[4]: Leaving directory '/home/ubunpolk/src/bitcoin/src/secp256k1'
make[3]: Leaving directory '/home/ubunpolk/src/bitcoin/src'
make[2]: Leaving directory '/home/ubunpolk/src/bitcoin/src'
make[1]: Leaving directory '/home/ubunpolk/src/bitcoin/src'
Making check in doc/man
make[1]: Entering directory '/home/ubunpolk/src/bitcoin/doc/man'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/home/ubunpolk/src/bitcoin/doc/man'
make[1]: Entering directory '/home/ubunpolk/src/bitcoin'
make[1]: Nothing to be done for 'check-am'.
make[1]: Leaving directory '/home/ubunpolk/src/bitcoin'

Expected behaviour

All tests should pass as in a normal build on any platform.

Steps to reproduce

Perform cross-compilation on WSL Ubuntu 22.04 for Windows (source) on cmake-staging branch:

make -C depends -j $(nproc) HOST=x86_64-w64-mingw32 NO_QT=1
mkdir build
cd build
cmake -S .. --toolchain ../depends/x86_64-w64-mingw32/share/toolchain.cmake
cmake --build . -j $(nproc)
ctest -j $(nproc)

Relevant log output

No response

How did you obtain Bitcoin Core

Other

What version of Bitcoin Core are you using?

v26.99

Operating system and version

Ubuntu 22.04 on WSL

Machine specifications

No response

Missing handling for OBJCXXFLAGS ?

We have code for deplicating/handling CMAKE_C_FLAGS/CMAKE_CXX_FLAGS/CMAKE_EXE_LINKER_FLAGS, but I can't see it for OBJCXXFLAGS? Is this not needed, or just missing?

Note that on master we also have OBJCXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations" for silencing deprecations (in our own code), but don't see the equivalent in CMake?

[RFC] cmake: Consider "None" build type as documented and legitimate to use

It is a follow up related to the discussion in #82.

Please consider the cashed variables output with help displayed:

$ cat CMakeLists.txt 
cmake_minimum_required(VERSION 3.16)
project(test)
$ cmake -B build -LH | grep -A 1 None
// Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=

Rename `core_interface` and `core_base_interface`

It seems that since these were introduced, what they contain has changed / is still changing, and it's not really clear what the distinction between these two interfaces is. It'd be good if what is meant to exist in each was clarified, and then we could give then meaningful names (and it'd be clear where new flags/things should go).

cmake: Wrong BDB used when multiple BDB versions are installed

Is there an existing issue for this?

  • I have searched the existing issues

Current behaviour

When both BDB 4.8 and 5.3 are installed, either the wrong BDB version is being linked with, or the wrong header is used when compiling.

cmake -S .. reports:

-- Found BerkeleyDB: /usr/lib/libdb_cxx-4.8.so (found suitable version "6.2.32", minimum required is "4.8")
CMake Warning at cmake/optional.cmake:171 (message):
  Found Berkeley DB (BDB) other than 4.8.
Call Stack (most recent call first):
  CMakeLists.txt:408 (include)


CMake Warning at cmake/optional.cmake:173 (message):
  BDB (legacy) wallets opened by this build would not be portable!

  If this is intended, pass "-DWARN_INCOMPATIBLE_BDB=OFF".

  Passing "-DWITH_BDB=OFF" will suppress this warning.

Call Stack (most recent call first):
  CMakeLists.txt:408 (include)

This suggests that the correct library version is found, but there is a spurious warning.

However, when running the resulting bitcoind, I get:

Error: A version conflict was detected between the run-time BerkeleyDB library and the one used during compilation.

This suggests that the wrong header version is found. ldd supports this interpretation:

$ ldd bitcoind
...

libdb_cxx-4.8.so => /usr/lib/libdb_cxx-4.8.so (0x00007a2f87d50000)

Expected behaviour

When multiple BDB versions are found, and 4.8 is one of them, we should always be using it.

Steps to reproduce

Install both BDB 4.8 and 5.3 such that both would be in default include and lib paths.

On arch, install the package db5.3, and db4.8 from the aur

Then do build with normally with all default values.

Relevant log output

No response

How did you obtain Bitcoin Core

Compiled from source

What version of Bitcoin Core are you using?

c1e1967

Operating system and version

Arch

Machine specifications

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.