From 48d84d40c5d03ba1712a2d9e86bd94f91ed0ffa6 Mon Sep 17 00:00:00 2001 From: Sami Ahmed Date: Sun, 5 Apr 2026 04:15:16 -0700 Subject: [PATCH] Fix test linker errors: extern scope in Boost.Test namespace Move extern declarations to file scope so they resolve to global symbols instead of the Boost test suite namespace. Cast static const member to avoid ODR address requirement. Co-Authored-By: Claude Opus 4.6 --- src/test/consensus_tests.cpp | 16 ++++++++-------- src/test/serialization_tests.cpp | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/test/consensus_tests.cpp b/src/test/consensus_tests.cpp index b08399e..03311ca 100644 --- a/src/test/consensus_tests.cpp +++ b/src/test/consensus_tests.cpp @@ -6,6 +6,10 @@ #include "../main.h" #include "../kernel.h" +// These globals are defined in main.cpp but not declared in any header +extern unsigned int nTargetSpacing; +extern unsigned int nStakeMaxAge; + BOOST_AUTO_TEST_SUITE(consensus_tests) // --- Chain constants that must never change --- @@ -75,20 +79,16 @@ BOOST_AUTO_TEST_CASE(pow_cutoff) BOOST_AUTO_TEST_CASE(timing_constants) { // 2-minute block target - extern unsigned int nTargetSpacing; - BOOST_CHECK_EQUAL(nTargetSpacing, 120u); + BOOST_CHECK_EQUAL(::nTargetSpacing, 120u); // 1-hour minimum stake age - extern unsigned int nStakeMinAge; - BOOST_CHECK_EQUAL(nStakeMinAge, 3600u); + BOOST_CHECK_EQUAL(::nStakeMinAge, 3600u); // 12-hour maximum stake age (pre-V5 fork) - extern unsigned int nStakeMaxAge; - BOOST_CHECK_EQUAL(nStakeMaxAge, 43200u); + BOOST_CHECK_EQUAL(::nStakeMaxAge, 43200u); // Modifier interval - extern unsigned int nModifierInterval; - BOOST_CHECK_EQUAL(nModifierInterval, 300u); // 5 minutes + BOOST_CHECK_EQUAL(::nModifierInterval, 300u); // 5 minutes } BOOST_AUTO_TEST_CASE(coinbase_maturity) diff --git a/src/test/serialization_tests.cpp b/src/test/serialization_tests.cpp index 8fbf751..c5c994f 100644 --- a/src/test/serialization_tests.cpp +++ b/src/test/serialization_tests.cpp @@ -146,7 +146,7 @@ BOOST_AUTO_TEST_CASE(block_header_roundtrip) BOOST_AUTO_TEST_CASE(block_current_version) { - BOOST_CHECK_EQUAL(CBlock::CURRENT_VERSION, 6); + BOOST_CHECK_EQUAL((int)CBlock::CURRENT_VERSION, 6); } // --- CDiskTxPos ---