diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index c963afff351..aacefb3f85c 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -102,6 +102,7 @@ add_executable(test_bitcoin span_tests.cpp streams_tests.cpp sync_tests.cpp + system_ram_tests.cpp system_tests.cpp testnet4_miner_tests.cpp timeoffsets_tests.cpp @@ -197,7 +198,10 @@ function(add_boost_test source_file) COMMAND test_bitcoin --run_test=${test_suite_name} --catch_system_error=no --log_level=test_suite -- DEBUG_LOG_OUT ) set_property(TEST ${test_suite_name} PROPERTY - SKIP_REGULAR_EXPRESSION "no test cases matching filter" "skipping script_assets_test" + SKIP_REGULAR_EXPRESSION + "no test cases matching filter" + "skipping script_assets_test" + "skipping total_ram" ) endforeach() endfunction() diff --git a/src/test/system_ram_tests.cpp b/src/test/system_ram_tests.cpp new file mode 100644 index 00000000000..8ad622642f5 --- /dev/null +++ b/src/test/system_ram_tests.cpp @@ -0,0 +1,32 @@ +// Copyright (c) 2025-present The Bitcoin Core developers +// Distributed under the MIT software license, see the accompanying +// file COPYING or https://opensource.org/license/mit/. + +#include +#include + +#include + +#include +#include + +BOOST_AUTO_TEST_SUITE(system_ram_tests) + +BOOST_AUTO_TEST_CASE(total_ram) +{ + const auto total{GetTotalRAM()}; + if (!total) { + BOOST_WARN_MESSAGE(false, "skipping total_ram: total RAM unknown"); + return; + } + + BOOST_CHECK_GE(*total, 1000_MiB); + + if constexpr (SIZE_MAX == UINT64_MAX) { + // Upper bound check only on 64-bit: 32-bit systems can reasonably have max memory, + // but extremely large values on 64-bit likely indicate detection errors + BOOST_CHECK_LT(*total, 10'000'000_MiB); // >10 TiB memory is unlikely + } +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/system_tests.cpp b/src/test/system_tests.cpp index 53db32007ee..dec4d418290 100644 --- a/src/test/system_tests.cpp +++ b/src/test/system_tests.cpp @@ -8,8 +8,6 @@ #include #include -#include - #ifdef ENABLE_EXTERNAL_SIGNER #include #endif // ENABLE_EXTERNAL_SIGNER @@ -18,17 +16,6 @@ BOOST_FIXTURE_TEST_SUITE(system_tests, BasicTestingSetup) -BOOST_AUTO_TEST_CASE(total_ram) -{ - BOOST_CHECK_GE(GetTotalRAM(), 1000_MiB); - - if constexpr (SIZE_MAX == UINT64_MAX) { - // Upper bound check only on 64-bit: 32-bit systems can reasonably have max memory, - // but extremely large values on 64-bit likely indicate detection errors - BOOST_CHECK_LT(GetTotalRAM(), 10'000'000_MiB); // >10 TiB memory is unlikely - } -} - #ifdef ENABLE_EXTERNAL_SIGNER BOOST_AUTO_TEST_CASE(run_command)