mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-15 16:38:23 +01:00
test: split out system_ram_tests to signal when total ram cannot be determined
when `GetTotalRAM` returns an `std::nullopt` now we're getting:
```
The following tests did not run:
106 - system_ram_tests (Skipped)
```
This commit is contained in:
@@ -102,6 +102,7 @@ add_executable(test_bitcoin
|
|||||||
span_tests.cpp
|
span_tests.cpp
|
||||||
streams_tests.cpp
|
streams_tests.cpp
|
||||||
sync_tests.cpp
|
sync_tests.cpp
|
||||||
|
system_ram_tests.cpp
|
||||||
system_tests.cpp
|
system_tests.cpp
|
||||||
testnet4_miner_tests.cpp
|
testnet4_miner_tests.cpp
|
||||||
timeoffsets_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
|
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
|
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()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|||||||
32
src/test/system_ram_tests.cpp
Normal file
32
src/test/system_ram_tests.cpp
Normal file
@@ -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 <common/system.h>
|
||||||
|
#include <test/util/setup_common.h>
|
||||||
|
|
||||||
|
#include <boost/test/unit_test.hpp>
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include <optional>
|
||||||
|
|
||||||
|
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()
|
||||||
@@ -8,8 +8,6 @@
|
|||||||
#include <common/run_command.h>
|
#include <common/run_command.h>
|
||||||
#include <univalue.h>
|
#include <univalue.h>
|
||||||
|
|
||||||
#include <common/system.h>
|
|
||||||
|
|
||||||
#ifdef ENABLE_EXTERNAL_SIGNER
|
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||||
#include <util/subprocess.h>
|
#include <util/subprocess.h>
|
||||||
#endif // ENABLE_EXTERNAL_SIGNER
|
#endif // ENABLE_EXTERNAL_SIGNER
|
||||||
@@ -18,17 +16,6 @@
|
|||||||
|
|
||||||
BOOST_FIXTURE_TEST_SUITE(system_tests, BasicTestingSetup)
|
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
|
#ifdef ENABLE_EXTERNAL_SIGNER
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(run_command)
|
BOOST_AUTO_TEST_CASE(run_command)
|
||||||
|
|||||||
Reference in New Issue
Block a user