test(litebe): make the retire test deterministic under the change-gate

The change-gated refresh worker only runs `balance` on a full-refresh
cycle, so testLiteWalletControllerRetire could no longer reliably park
the worker inside a blocked `balance` (it passed only by timing). Bump
the fake scanned height to force a full-refresh cycle, which enters the
now-blocked `balance` deterministically.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 12:36:43 -05:00
co-authored by Claude Opus 4.8
parent ef14518089
commit 5a3d36904c
+3
View File
@@ -12139,6 +12139,9 @@ void testLiteWalletControllerRetire()
EXPECT_TRUE(c->importKeyAsync("secret-extended-key-x", [&](const LiteImportResult& r) { ++n2; ok2 = r.ok; }));
const long entered = dragonx::test::g_liteFakeBalanceEntered.load();
dragonx::test::g_liteFakeBlockBalance = true;
// The refresh worker change-gates (C23): it only runs `balance` on a full-refresh cycle. Bump the
// scanned height so the gate forces a DoFull, which enters the now-blocked `balance` and parks there.
dragonx::test::g_liteFakeHeight = dragonx::test::g_liteFakeHeight.load() + 1;
for (int i = 0; i < 1000 && dragonx::test::g_liteFakeBalanceEntered.load() == entered; ++i)
std::this_thread::sleep_for(std::chrono::milliseconds(5));
EXPECT_TRUE(dragonx::test::g_liteFakeBalanceEntered.load() > entered);