test: remove macOS REDUCE_EXPORTS exception workaround
What changed, and why it matters
This commit removes a temporary test-only workaround that allowed a less informative error message on macOS when a specific build option (REDUCE_EXPORTS) was used. The underlying problem was fixed in a separate library, so the test no longer needs to accept the degraded message. It is purely a cleanup of test code and does not change any production Bitcoin Core behavior.
No security action needed. This is a routine test cleanup after an upstream fix.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The change deletes a conditional branch in test/functional/test_framework/ipc_util.py that handled a known Cap’n Proto / libmultiprocess issue on Darwin where exception type information was lost when REDUCE_EXPORTS was enabled. Now that bitcoin-core/libmultiprocess#268 has fixed the root cause, the test helper always asserts that the exception description starts with the expected prefix. No production code, network logic, or consensus code is modified.
Changed components
test/functional/test_framework/ipc_util.pyInspect captured patch +1 / −9
diff --git a/test/functional/test_framework/ipc_util.py b/test/functional/test_framework/ipc_util.py
index 03e3b5d5..0e10b90e 100644
--- a/test/functional/test_framework/ipc_util.py
+++ b/test/functional/test_framework/ipc_util.py
@@ -10,7 +10,6 @@ from dataclasses import dataclass
from io import BytesIO
from pathlib import Path
import shutil
-import platform
from typing import Optional
from test_framework.messages import CBlock
@@ -161,12 +160,5 @@ async def make_mining_ctx(self):
return ctx, mining
def assert_capnp_failed(e, description_prefix):
- if e.description == "remote exception: unknown non-KJ exception of type: kj::Exception":
- # macOS + REDUCE_EXPORTS bug: Cap'n Proto fails to recognize
- # its own exception type and returns a generic error instead.
- # https://github.com/bitcoin/bitcoin/pull/34422#discussion_r2863852691
- # Assert this only occurs on Darwin until fixed.
- assert_equal(platform.system(), "Darwin")
- else:
- assert e.description.startswith(description_prefix), f"Expected description starting with '{description_prefix}', got '{e.description}'"
+ assert e.description.startswith(description_prefix), f"Expected description starting with '{description_prefix}', got '{e.description}'"
assert_equal(e.type, "FAILED")
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.