Merge bitcoin/bitcoin#32492: test: add skip_if_running_under_valgrind()

75a185ea3d test: add skip_if_running_under_valgrind() (fanquake)

Pull request description:

  Enable it in the USDT tests. The context (from 0xB10C):

  > every time the tracepoint is reached a SIGTRAP is fired.
  > No matter the tracepoint contents, even with an empty one.
  > Valgrind intercepts SIGTRAP and aborts.

  See discussion in #32374.

ACKs for top commit:
  maflcko:
    lgtm ACK 75a185ea3d
  willcl-ark:
    ACK 75a185ea3d

Tree-SHA512: 7f45c3049ab39cc514024067bd6ac26598e99202c114b48459834c26c2e1273fa58af693878298e628a10c561b954850e49e76b39567b771bb0c0534a063a524
This commit is contained in:
merge-script
2025-05-15 10:17:50 +01:00
6 changed files with 10 additions and 0 deletions

View File

@@ -117,6 +117,7 @@ class CoinSelectionTracepointTest(BitcoinTestFramework):
self.skip_if_no_python_bcc()
self.skip_if_no_bpf_permissions()
self.skip_if_no_wallet()
self.skip_if_running_under_valgrind()
def get_tracepoints(self, expected_types):
events = []

View File

@@ -158,6 +158,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
self.skip_if_no_bitcoind_tracepoints()
self.skip_if_no_python_bcc()
self.skip_if_no_bpf_permissions()
self.skip_if_running_under_valgrind()
def added_test(self):
"""Add a transaction to the mempool and make sure the tracepoint returns

View File

@@ -254,6 +254,7 @@ class NetTracepointTest(BitcoinTestFramework):
self.skip_if_no_bitcoind_tracepoints()
self.skip_if_no_python_bcc()
self.skip_if_no_bpf_permissions()
self.skip_if_running_under_valgrind()
def run_test(self):
self.p2p_message_tracepoint_test()

View File

@@ -150,6 +150,7 @@ class UTXOCacheTracepointTest(BitcoinTestFramework):
self.skip_if_no_bitcoind_tracepoints()
self.skip_if_no_python_bcc()
self.skip_if_no_bpf_permissions()
self.skip_if_running_under_valgrind()
def run_test(self):
self.wallet = MiniWallet(self.nodes[0])

View File

@@ -64,6 +64,7 @@ class ValidationTracepointTest(BitcoinTestFramework):
self.skip_if_no_bitcoind_tracepoints()
self.skip_if_no_python_bcc()
self.skip_if_no_bpf_permissions()
self.skip_if_running_under_valgrind()
def run_test(self):
# Tests the validation:block_connected tracepoint by generating blocks

View File

@@ -1016,6 +1016,11 @@ class BitcoinTestFramework(metaclass=BitcoinTestMetaClass):
if not self.is_external_signer_compiled():
raise SkipTest("external signer support has not been compiled.")
def skip_if_running_under_valgrind(self):
"""Skip the running test if Valgrind is being used."""
if self.options.valgrind:
raise SkipTest("This test is not compatible with Valgrind.")
def is_cli_compiled(self):
"""Checks whether bitcoin-cli was compiled."""
return self.config["components"].getboolean("ENABLE_CLI")