mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 14:59:39 -04:00
Merge bitcoin/bitcoin#32336: test: Suppress upstream -Wduplicate-decl-specifier
in bpfcc
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / macOS 14 native, arm64, fuzz (push) Waiting to run
CI / Windows native, VS 2022 (push) Waiting to run
CI / Windows native, fuzz, VS 2022 (push) Waiting to run
CI / Linux->Windows cross, no tests (push) Waiting to run
CI / Windows, test cross-built (push) Blocked by required conditions
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 14 native, arm64, no depends, sqlite only, gui (push) Waiting to run
CI / macOS 14 native, arm64, fuzz (push) Waiting to run
CI / Windows native, VS 2022 (push) Waiting to run
CI / Windows native, fuzz, VS 2022 (push) Waiting to run
CI / Linux->Windows cross, no tests (push) Waiting to run
CI / Windows, test cross-built (push) Blocked by required conditions
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
facb9b327b
scripted-diff: Use bpf_cflags (MarcoFalke)fa0c1baaf8
test: Add imports for util bpf_cflags (MarcoFalke) Pull request description: On some Linux kernel versions, the bpf compiler invoked in the functional tests will issue a `-Wduplicate-decl-specifier` warning. This seems harmless and should be fixed upstream in the Linux kernel. Here, simply suppress it for now. Fixes https://github.com/bitcoin/bitcoin/issues/32322 ACKs for top commit: laanwj: Code review ACKfacb9b327b
hebasto: ACKfacb9b327b
, I have reviewed the code and it looks OK. Tree-SHA512: 53387127e3c2a2dbfe05281b2d2e61efbd3c3adcc3b4bf2f11540042f86e1e8c06637f80d246310bc44ca0612318472f25545c1e1ca3636fda97d04381f9e905
This commit is contained in:
commit
458720e5e9
6 changed files with 46 additions and 26 deletions
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Copyright (c) 2022 The Bitcoin Core developers
|
# Copyright (c) 2022-present The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ from test_framework.util import (
|
||||||
assert_equal,
|
assert_equal,
|
||||||
assert_greater_than,
|
assert_greater_than,
|
||||||
assert_raises_rpc_error,
|
assert_raises_rpc_error,
|
||||||
|
bpf_cflags,
|
||||||
)
|
)
|
||||||
|
|
||||||
coinselection_tracepoints_program = """
|
coinselection_tracepoints_program = """
|
||||||
|
@ -175,7 +176,7 @@ class CoinSelectionTracepointTest(BitcoinTestFramework):
|
||||||
ctx.enable_probe(probe="coin_selection:normal_create_tx_internal", fn_name="trace_normal_create_tx")
|
ctx.enable_probe(probe="coin_selection:normal_create_tx_internal", fn_name="trace_normal_create_tx")
|
||||||
ctx.enable_probe(probe="coin_selection:attempting_aps_create_tx", fn_name="trace_attempt_aps")
|
ctx.enable_probe(probe="coin_selection:attempting_aps_create_tx", fn_name="trace_attempt_aps")
|
||||||
ctx.enable_probe(probe="coin_selection:aps_create_tx_internal", fn_name="trace_aps_create_tx")
|
ctx.enable_probe(probe="coin_selection:aps_create_tx_internal", fn_name="trace_aps_create_tx")
|
||||||
self.bpf = BPF(text=coinselection_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
self.bpf = BPF(text=coinselection_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
self.log.info("Prepare wallets")
|
self.log.info("Prepare wallets")
|
||||||
self.generate(self.nodes[0], 101)
|
self.generate(self.nodes[0], 101)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Copyright (c) 2022 The Bitcoin Core developers
|
# Copyright (c) 2022-present The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
@ -20,7 +20,10 @@ from test_framework.blocktools import COINBASE_MATURITY
|
||||||
from test_framework.messages import COIN, DEFAULT_MEMPOOL_EXPIRY_HOURS
|
from test_framework.messages import COIN, DEFAULT_MEMPOOL_EXPIRY_HOURS
|
||||||
from test_framework.p2p import P2PDataStore
|
from test_framework.p2p import P2PDataStore
|
||||||
from test_framework.test_framework import BitcoinTestFramework
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import assert_equal
|
from test_framework.util import (
|
||||||
|
assert_equal,
|
||||||
|
bpf_cflags,
|
||||||
|
)
|
||||||
from test_framework.wallet import MiniWallet
|
from test_framework.wallet import MiniWallet
|
||||||
|
|
||||||
MEMPOOL_TRACEPOINTS_PROGRAM = """
|
MEMPOOL_TRACEPOINTS_PROGRAM = """
|
||||||
|
@ -166,7 +169,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
ctx = USDT(pid=node.process.pid)
|
ctx = USDT(pid=node.process.pid)
|
||||||
ctx.enable_probe(probe="mempool:added", fn_name="trace_added")
|
ctx.enable_probe(probe="mempool:added", fn_name="trace_added")
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
def handle_added_event(_, data, __):
|
def handle_added_event(_, data, __):
|
||||||
events.append(bpf["added_events"].event(data))
|
events.append(bpf["added_events"].event(data))
|
||||||
|
@ -203,7 +206,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
ctx = USDT(pid=node.process.pid)
|
ctx = USDT(pid=node.process.pid)
|
||||||
ctx.enable_probe(probe="mempool:removed", fn_name="trace_removed")
|
ctx.enable_probe(probe="mempool:removed", fn_name="trace_removed")
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
def handle_removed_event(_, data, __):
|
def handle_removed_event(_, data, __):
|
||||||
events.append(bpf["removed_events"].event(data))
|
events.append(bpf["removed_events"].event(data))
|
||||||
|
@ -249,7 +252,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
node = self.nodes[0]
|
node = self.nodes[0]
|
||||||
ctx = USDT(pid=node.process.pid)
|
ctx = USDT(pid=node.process.pid)
|
||||||
ctx.enable_probe(probe="mempool:replaced", fn_name="trace_replaced")
|
ctx.enable_probe(probe="mempool:replaced", fn_name="trace_replaced")
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
def handle_replaced_event(_, data, __):
|
def handle_replaced_event(_, data, __):
|
||||||
event = ctypes.cast(data, ctypes.POINTER(MempoolReplaced)).contents
|
event = ctypes.cast(data, ctypes.POINTER(MempoolReplaced)).contents
|
||||||
|
@ -302,7 +305,7 @@ class MempoolTracepointTest(BitcoinTestFramework):
|
||||||
self.log.info("Hooking into mempool:rejected tracepoint...")
|
self.log.info("Hooking into mempool:rejected tracepoint...")
|
||||||
ctx = USDT(pid=node.process.pid)
|
ctx = USDT(pid=node.process.pid)
|
||||||
ctx.enable_probe(probe="mempool:rejected", fn_name="trace_rejected")
|
ctx.enable_probe(probe="mempool:rejected", fn_name="trace_rejected")
|
||||||
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=MEMPOOL_TRACEPOINTS_PROGRAM, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
def handle_rejected_event(_, data, __):
|
def handle_rejected_event(_, data, __):
|
||||||
events.append(bpf["rejected_events"].event(data))
|
events.append(bpf["rejected_events"].event(data))
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Copyright (c) 2022 The Bitcoin Core developers
|
# Copyright (c) 2022-present The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
@ -17,7 +17,11 @@ except ImportError:
|
||||||
from test_framework.messages import CBlockHeader, MAX_HEADERS_RESULTS, msg_headers, msg_version
|
from test_framework.messages import CBlockHeader, MAX_HEADERS_RESULTS, msg_headers, msg_version
|
||||||
from test_framework.p2p import P2PInterface
|
from test_framework.p2p import P2PInterface
|
||||||
from test_framework.test_framework import BitcoinTestFramework
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import assert_equal, assert_greater_than
|
from test_framework.util import (
|
||||||
|
assert_equal,
|
||||||
|
assert_greater_than,
|
||||||
|
bpf_cflags,
|
||||||
|
)
|
||||||
|
|
||||||
# Tor v3 addresses are 62 chars + 6 chars for the port (':12345').
|
# Tor v3 addresses are 62 chars + 6 chars for the port (':12345').
|
||||||
MAX_PEER_ADDR_LENGTH = 68
|
MAX_PEER_ADDR_LENGTH = 68
|
||||||
|
@ -283,7 +287,7 @@ class NetTracepointTest(BitcoinTestFramework):
|
||||||
fn_name="trace_inbound_message")
|
fn_name="trace_inbound_message")
|
||||||
ctx.enable_probe(probe="net:outbound_message",
|
ctx.enable_probe(probe="net:outbound_message",
|
||||||
fn_name="trace_outbound_message")
|
fn_name="trace_outbound_message")
|
||||||
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
EXPECTED_INOUTBOUND_VERSION_MSG = 1
|
EXPECTED_INOUTBOUND_VERSION_MSG = 1
|
||||||
checked_inbound_version_msg = 0
|
checked_inbound_version_msg = 0
|
||||||
|
@ -341,7 +345,7 @@ class NetTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="net:inbound_connection",
|
ctx.enable_probe(probe="net:inbound_connection",
|
||||||
fn_name="trace_inbound_connection")
|
fn_name="trace_inbound_connection")
|
||||||
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
inbound_connections = []
|
inbound_connections = []
|
||||||
EXPECTED_INBOUND_CONNECTIONS = 2
|
EXPECTED_INBOUND_CONNECTIONS = 2
|
||||||
|
@ -378,7 +382,7 @@ class NetTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="net:outbound_connection",
|
ctx.enable_probe(probe="net:outbound_connection",
|
||||||
fn_name="trace_outbound_connection")
|
fn_name="trace_outbound_connection")
|
||||||
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
# that the handle_* function succeeds.
|
# that the handle_* function succeeds.
|
||||||
EXPECTED_OUTBOUND_CONNECTIONS = 2
|
EXPECTED_OUTBOUND_CONNECTIONS = 2
|
||||||
|
@ -419,7 +423,7 @@ class NetTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="net:evicted_inbound_connection",
|
ctx.enable_probe(probe="net:evicted_inbound_connection",
|
||||||
fn_name="trace_evicted_inbound_connection")
|
fn_name="trace_evicted_inbound_connection")
|
||||||
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
EXPECTED_EVICTED_CONNECTIONS = 2
|
EXPECTED_EVICTED_CONNECTIONS = 2
|
||||||
evicted_connections = []
|
evicted_connections = []
|
||||||
|
@ -456,7 +460,7 @@ class NetTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="net:misbehaving_connection",
|
ctx.enable_probe(probe="net:misbehaving_connection",
|
||||||
fn_name="trace_misbehaving_connection")
|
fn_name="trace_misbehaving_connection")
|
||||||
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
EXPECTED_MISBEHAVING_CONNECTIONS = 2
|
EXPECTED_MISBEHAVING_CONNECTIONS = 2
|
||||||
misbehaving_connections = []
|
misbehaving_connections = []
|
||||||
|
@ -490,7 +494,7 @@ class NetTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="net:closed_connection",
|
ctx.enable_probe(probe="net:closed_connection",
|
||||||
fn_name="trace_closed_connection")
|
fn_name="trace_closed_connection")
|
||||||
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=net_tracepoints_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
EXPECTED_CLOSED_CONNECTIONS = 2
|
EXPECTED_CLOSED_CONNECTIONS = 2
|
||||||
closed_connections = []
|
closed_connections = []
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Copyright (c) 2022 The Bitcoin Core developers
|
# Copyright (c) 2022-present The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
@ -15,7 +15,10 @@ except ImportError:
|
||||||
pass
|
pass
|
||||||
from test_framework.messages import COIN
|
from test_framework.messages import COIN
|
||||||
from test_framework.test_framework import BitcoinTestFramework
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import assert_equal
|
from test_framework.util import (
|
||||||
|
assert_equal,
|
||||||
|
bpf_cflags,
|
||||||
|
)
|
||||||
from test_framework.wallet import MiniWallet
|
from test_framework.wallet import MiniWallet
|
||||||
|
|
||||||
utxocache_changes_program = """
|
utxocache_changes_program = """
|
||||||
|
@ -181,7 +184,7 @@ class UTXOCacheTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="utxocache:uncache",
|
ctx.enable_probe(probe="utxocache:uncache",
|
||||||
fn_name="trace_utxocache_uncache")
|
fn_name="trace_utxocache_uncache")
|
||||||
bpf = BPF(text=utxocache_changes_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=utxocache_changes_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
# The handle_* function is a ctypes callback function called from C. When
|
# The handle_* function is a ctypes callback function called from C. When
|
||||||
# we assert in the handle_* function, the AssertError doesn't propagate
|
# we assert in the handle_* function, the AssertError doesn't propagate
|
||||||
|
@ -250,7 +253,7 @@ class UTXOCacheTracepointTest(BitcoinTestFramework):
|
||||||
ctx.enable_probe(probe="utxocache:add", fn_name="trace_utxocache_add")
|
ctx.enable_probe(probe="utxocache:add", fn_name="trace_utxocache_add")
|
||||||
ctx.enable_probe(probe="utxocache:spent",
|
ctx.enable_probe(probe="utxocache:spent",
|
||||||
fn_name="trace_utxocache_spent")
|
fn_name="trace_utxocache_spent")
|
||||||
bpf = BPF(text=utxocache_changes_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=utxocache_changes_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
# The handle_* function is a ctypes callback function called from C. When
|
# The handle_* function is a ctypes callback function called from C. When
|
||||||
# we assert in the handle_* function, the AssertError doesn't propagate
|
# we assert in the handle_* function, the AssertError doesn't propagate
|
||||||
|
@ -350,7 +353,7 @@ class UTXOCacheTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="utxocache:flush",
|
ctx.enable_probe(probe="utxocache:flush",
|
||||||
fn_name="trace_utxocache_flush")
|
fn_name="trace_utxocache_flush")
|
||||||
bpf = BPF(text=utxocache_flushes_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=utxocache_flushes_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
# The handle_* function is a ctypes callback function called from C. When
|
# The handle_* function is a ctypes callback function called from C. When
|
||||||
# we assert in the handle_* function, the AssertError doesn't propagate
|
# we assert in the handle_* function, the AssertError doesn't propagate
|
||||||
|
@ -407,7 +410,7 @@ class UTXOCacheTracepointTest(BitcoinTestFramework):
|
||||||
ctx = USDT(pid=self.nodes[0].process.pid)
|
ctx = USDT(pid=self.nodes[0].process.pid)
|
||||||
ctx.enable_probe(probe="utxocache:flush",
|
ctx.enable_probe(probe="utxocache:flush",
|
||||||
fn_name="trace_utxocache_flush")
|
fn_name="trace_utxocache_flush")
|
||||||
bpf = BPF(text=utxocache_flushes_program, usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
bpf = BPF(text=utxocache_flushes_program, usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
bpf["utxocache_flush"].open_perf_buffer(handle_utxocache_flush)
|
bpf["utxocache_flush"].open_perf_buffer(handle_utxocache_flush)
|
||||||
|
|
||||||
self.log.info("prune blockchain to trigger a flush for pruning")
|
self.log.info("prune blockchain to trigger a flush for pruning")
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Copyright (c) 2022 The Bitcoin Core developers
|
# Copyright (c) 2022-present The Bitcoin Core developers
|
||||||
# Distributed under the MIT software license, see the accompanying
|
# Distributed under the MIT software license, see the accompanying
|
||||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
@ -18,8 +18,10 @@ except ImportError:
|
||||||
|
|
||||||
from test_framework.address import ADDRESS_BCRT1_UNSPENDABLE
|
from test_framework.address import ADDRESS_BCRT1_UNSPENDABLE
|
||||||
from test_framework.test_framework import BitcoinTestFramework
|
from test_framework.test_framework import BitcoinTestFramework
|
||||||
from test_framework.util import assert_equal
|
from test_framework.util import (
|
||||||
|
assert_equal,
|
||||||
|
bpf_cflags,
|
||||||
|
)
|
||||||
|
|
||||||
validation_blockconnected_program = """
|
validation_blockconnected_program = """
|
||||||
#include <uapi/linux/ptrace.h>
|
#include <uapi/linux/ptrace.h>
|
||||||
|
@ -97,7 +99,7 @@ class ValidationTracepointTest(BitcoinTestFramework):
|
||||||
ctx.enable_probe(probe="validation:block_connected",
|
ctx.enable_probe(probe="validation:block_connected",
|
||||||
fn_name="trace_block_connected")
|
fn_name="trace_block_connected")
|
||||||
bpf = BPF(text=validation_blockconnected_program,
|
bpf = BPF(text=validation_blockconnected_program,
|
||||||
usdt_contexts=[ctx], debug=0, cflags=["-Wno-error=implicit-function-declaration"])
|
usdt_contexts=[ctx], debug=0, cflags=bpf_cflags())
|
||||||
|
|
||||||
def handle_blockconnected(_, data, __):
|
def handle_blockconnected(_, data, __):
|
||||||
event = ctypes.cast(data, ctypes.POINTER(Block)).contents
|
event = ctypes.cast(data, ctypes.POINTER(Block)).contents
|
||||||
|
|
|
@ -321,6 +321,13 @@ def wait_until_helper_internal(predicate, *, timeout=60, lock=None, timeout_fact
|
||||||
raise AssertionError("Predicate {} not true after {} seconds".format(predicate_source, timeout))
|
raise AssertionError("Predicate {} not true after {} seconds".format(predicate_source, timeout))
|
||||||
|
|
||||||
|
|
||||||
|
def bpf_cflags():
|
||||||
|
return [
|
||||||
|
"-Wno-error=implicit-function-declaration",
|
||||||
|
"-Wno-duplicate-decl-specifier", # https://github.com/bitcoin/bitcoin/issues/32322
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def sha256sum_file(filename):
|
def sha256sum_file(filename):
|
||||||
h = hashlib.sha256()
|
h = hashlib.sha256()
|
||||||
with open(filename, 'rb') as f:
|
with open(filename, 'rb') as f:
|
||||||
|
|
Loading…
Add table
Reference in a new issue