Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F13115279
D968.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
12 KB
Subscribers
None
D968.diff
View Options
diff --git a/test/functional/abc-p2p-fullblocktest.py b/test/functional/abc-p2p-fullblocktest.py
--- a/test/functional/abc-p2p-fullblocktest.py
+++ b/test/functional/abc-p2p-fullblocktest.py
@@ -30,14 +30,14 @@
# TestNode: A peer we use to send messages to bitcoind, and store responses.
-class TestNode(SingleNodeConnCB):
+class TestNode(NodeConnCB):
def __init__(self):
self.last_sendcmpct = None
self.last_cmpctblock = None
self.last_getheaders = None
self.last_headers = None
- SingleNodeConnCB.__init__(self)
+ super().__init__()
def on_sendcmpct(self, conn, message):
self.last_sendcmpct = message
diff --git a/test/functional/assumevalid.py b/test/functional/assumevalid.py
--- a/test/functional/assumevalid.py
+++ b/test/functional/assumevalid.py
@@ -40,7 +40,7 @@
CTxOut,
NetworkThread,
NodeConn,
- SingleNodeConnCB,
+ NodeConnCB,
msg_block,
msg_headers)
from test_framework.script import (CScript, OP_TRUE)
@@ -48,10 +48,7 @@
from test_framework.util import (start_node, p2p_port, assert_equal)
-class BaseNode(SingleNodeConnCB):
- def __init__(self):
- super().__init__()
-
+class BaseNode(NodeConnCB):
def send_header_for_blocks(self, new_blocks):
headers_message = msg_headers()
headers_message.headers = [CBlockHeader(b) for b in new_blocks]
diff --git a/test/functional/maxblocksinflight.py b/test/functional/maxblocksinflight.py
--- a/test/functional/maxblocksinflight.py
+++ b/test/functional/maxblocksinflight.py
@@ -17,8 +17,6 @@
class TestManager(NodeConnCB):
- # set up NodeConnCB callbacks, overriding base class
-
def on_getdata(self, conn, message):
self.log.debug("got getdata %s" % repr(message))
# Log the requests
@@ -31,11 +29,8 @@
if not self.disconnectOkay:
raise EarlyDisconnectError(0)
- def __init__(self):
- NodeConnCB.__init__(self)
-
def add_new_connection(self, connection):
- self.connection = connection
+ super().add_connection(connection)
self.blockReqCounts = {}
self.disconnectOkay = False
diff --git a/test/functional/maxuploadtarget.py b/test/functional/maxuploadtarget.py
--- a/test/functional/maxuploadtarget.py
+++ b/test/functional/maxuploadtarget.py
@@ -26,7 +26,7 @@
class TestNode(NodeConnCB):
def __init__(self):
- NodeConnCB.__init__(self)
+ super().__init__()
self.connection = None
self.ping_counter = 1
self.last_pong = msg_pong()
diff --git a/test/functional/p2p-acceptblock.py b/test/functional/p2p-acceptblock.py
--- a/test/functional/p2p-acceptblock.py
+++ b/test/functional/p2p-acceptblock.py
@@ -63,7 +63,7 @@
class TestNode(NodeConnCB):
def __init__(self):
- NodeConnCB.__init__(self)
+ super().__init__()
self.connection = None
self.ping_counter = 1
self.last_pong = msg_pong()
diff --git a/test/functional/p2p-compactblocks.py b/test/functional/p2p-compactblocks.py
--- a/test/functional/p2p-compactblocks.py
+++ b/test/functional/p2p-compactblocks.py
@@ -20,10 +20,9 @@
# TestNode: A peer we use to send messages to bitcoind, and store responses.
-class TestNode(SingleNodeConnCB):
-
+class TestNode(NodeConnCB):
def __init__(self):
- SingleNodeConnCB.__init__(self)
+ super().__init__()
self.last_sendcmpct = []
self.last_headers = None
self.last_inv = None
diff --git a/test/functional/p2p-feefilter.py b/test/functional/p2p-feefilter.py
--- a/test/functional/p2p-feefilter.py
+++ b/test/functional/p2p-feefilter.py
@@ -32,10 +32,9 @@
# and to send the node feefilter messages.
-class TestNode(SingleNodeConnCB):
-
+class TestNode(NodeConnCB):
def __init__(self):
- SingleNodeConnCB.__init__(self)
+ super().__init__()
self.txinvs = []
def on_inv(self, conn, message):
diff --git a/test/functional/p2p-leaktests.py b/test/functional/p2p-leaktests.py
--- a/test/functional/p2p-leaktests.py
+++ b/test/functional/p2p-leaktests.py
@@ -23,10 +23,10 @@
class CLazyNode(NodeConnCB):
def __init__(self):
+ super().__init__()
self.connection = None
self.unexpected_msg = False
self.connected = False
- super().__init__()
def add_connection(self, conn):
self.connection = conn
diff --git a/test/functional/p2p-mempool.py b/test/functional/p2p-mempool.py
--- a/test/functional/p2p-mempool.py
+++ b/test/functional/p2p-mempool.py
@@ -11,7 +11,7 @@
class TestNode(NodeConnCB):
def __init__(self):
- NodeConnCB.__init__(self)
+ super().__init__()
self.connection = None
self.ping_counter = 1
self.last_pong = msg_pong()
diff --git a/test/functional/p2p-timeouts.py b/test/functional/p2p-timeouts.py
--- a/test/functional/p2p-timeouts.py
+++ b/test/functional/p2p-timeouts.py
@@ -28,10 +28,9 @@
from test_framework.util import *
-class TestNode(SingleNodeConnCB):
-
+class TestNode(NodeConnCB):
def __init__(self):
- SingleNodeConnCB.__init__(self)
+ super().__init__()
self.connected = False
self.received_version = False
diff --git a/test/functional/p2p-versionbits-warning.py b/test/functional/p2p-versionbits-warning.py
--- a/test/functional/p2p-versionbits-warning.py
+++ b/test/functional/p2p-versionbits-warning.py
@@ -34,7 +34,7 @@
class TestNode(NodeConnCB):
def __init__(self):
- NodeConnCB.__init__(self)
+ super().__init__()
self.connection = None
self.ping_counter = 1
self.last_pong = msg_pong()
diff --git a/test/functional/sendheaders.py b/test/functional/sendheaders.py
--- a/test/functional/sendheaders.py
+++ b/test/functional/sendheaders.py
@@ -83,10 +83,9 @@
direct_fetch_response_time = 0.05
-class BaseNode(SingleNodeConnCB):
-
+class BaseNode(NodeConnCB):
def __init__(self):
- SingleNodeConnCB.__init__(self)
+ super().__init__()
self.last_inv = None
self.last_headers = None
self.last_block = None
diff --git a/test/functional/test_framework/comptool.py b/test/functional/test_framework/comptool.py
--- a/test/functional/test_framework/comptool.py
+++ b/test/functional/test_framework/comptool.py
@@ -53,7 +53,7 @@
class TestNode(NodeConnCB):
def __init__(self, block_store, tx_store):
- NodeConnCB.__init__(self)
+ super().__init__()
self.conn = None
self.bestblockhash = None
self.block_store = block_store
diff --git a/test/functional/test_framework/mininode.py b/test/functional/test_framework/mininode.py
--- a/test/functional/test_framework/mininode.py
+++ b/test/functional/test_framework/mininode.py
@@ -1550,25 +1550,9 @@
self.deliver_sleep_time = None
# Remember the services our peer has advertised
self.peer_services = None
-
- def set_deliver_sleep_time(self, value):
- with mininode_lock:
- self.deliver_sleep_time = value
-
- def get_deliver_sleep_time(self):
- with mininode_lock:
- return self.deliver_sleep_time
-
- # Spin until verack message is received from the node.
- # Tests may want to use this as a signal that the test can begin.
- # This can be called from the testing thread, so it needs to acquire the
- # global lock.
- def wait_for_verack(self):
- while True:
- with mininode_lock:
- if self.verack_received:
- return
- time.sleep(0.05)
+ self.connection = None
+ self.ping_counter = 1
+ self.last_pong = msg_pong()
def deliver(self, conn, message):
deliver_sleep = self.get_deliver_sleep_time()
@@ -1581,82 +1565,84 @@
except:
logger.exception("ERROR delivering %s" % repr(message))
- def on_version(self, conn, message):
- if message.nVersion >= 209:
- conn.send_message(msg_verack())
- conn.ver_send = min(MY_VERSION, message.nVersion)
- if message.nVersion < 209:
- conn.ver_recv = conn.ver_send
- conn.nServices = message.nServices
+ def set_deliver_sleep_time(self, value):
+ with mininode_lock:
+ self.deliver_sleep_time = value
- def on_verack(self, conn, message):
- conn.ver_recv = conn.ver_send
- self.verack_received = True
+ def get_deliver_sleep_time(self):
+ with mininode_lock:
+ return self.deliver_sleep_time
- def on_inv(self, conn, message):
- want = msg_getdata()
- for i in message.inv:
- if i.type != 0:
- want.inv.append(i)
- if len(want.inv):
- conn.send_message(want)
+ # Callbacks which can be overridden by subclasses
+ #################################################
def on_addr(self, conn, message): pass
def on_alert(self, conn, message): pass
- def on_getdata(self, conn, message): pass
+ def on_block(self, conn, message): pass
- def on_getblocks(self, conn, message): pass
+ def on_blocktxn(self, conn, message): pass
- def on_tx(self, conn, message): pass
+ def on_close(self, conn): pass
- def on_block(self, conn, message): pass
+ def on_cmpctblock(self, conn, message): pass
- def on_getaddr(self, conn, message): pass
+ def on_feefilter(self, conn, message): pass
- def on_headers(self, conn, message): pass
+ def on_getaddr(self, conn, message): pass
- def on_getheaders(self, conn, message): pass
+ def on_getblocks(self, conn, message): pass
- def on_ping(self, conn, message):
- if conn.ver_send > BIP0031_VERSION:
- conn.send_message(msg_pong(message.nonce))
+ def on_getblocktxn(self, conn, message): pass
- def on_reject(self, conn, message): pass
+ def on_getdata(self, conn, message): pass
- def on_open(self, conn): pass
+ def on_getheaders(self, conn, message): pass
- def on_close(self, conn): pass
+ def on_headers(self, conn, message): pass
def on_mempool(self, conn): pass
- def on_pong(self, conn, message): pass
-
- def on_feefilter(self, conn, message): pass
+ def on_open(self, conn): pass
- def on_sendheaders(self, conn, message): pass
+ def on_reject(self, conn, message): pass
def on_sendcmpct(self, conn, message): pass
- def on_cmpctblock(self, conn, message): pass
+ def on_sendheaders(self, conn, message): pass
- def on_getblocktxn(self, conn, message): pass
+ def on_tx(self, conn, message): pass
- def on_blocktxn(self, conn, message): pass
+ def on_inv(self, conn, message):
+ want = msg_getdata()
+ for i in message.inv:
+ if i.type != 0:
+ want.inv.append(i)
+ if len(want.inv):
+ conn.send_message(want)
-# More useful callbacks and functions for NodeConnCB's which have a single
-# NodeConn
+ def on_ping(self, conn, message):
+ if conn.ver_send > BIP0031_VERSION:
+ conn.send_message(msg_pong(message.nonce))
+ def on_pong(self, conn, message):
+ self.last_pong = message
-class SingleNodeConnCB(NodeConnCB):
+ def on_verack(self, conn, message):
+ conn.ver_recv = conn.ver_send
+ self.verack_received = True
- def __init__(self):
- NodeConnCB.__init__(self)
- self.connection = None
- self.ping_counter = 1
- self.last_pong = msg_pong()
+ def on_version(self, conn, message):
+ if message.nVersion >= 209:
+ conn.send_message(msg_verack())
+ conn.ver_send = min(MY_VERSION, message.nVersion)
+ if message.nVersion < 209:
+ conn.ver_recv = conn.ver_send
+ conn.nServices = message.nServices
+ # Helper functions
+ ##################
def add_connection(self, conn):
self.connection = conn
@@ -1668,9 +1654,6 @@
self.send_message(message)
self.sync_with_ping()
- def on_pong(self, conn, message):
- self.last_pong = message
-
# Sync up with the node
def sync_with_ping(self, timeout=30):
def received_pong():
@@ -1678,8 +1661,20 @@
self.send_message(msg_ping(nonce=self.ping_counter))
success = wait_until(received_pong, timeout=timeout)
self.ping_counter += 1
+
return success
+ # Spin until verack message is received from the node.
+ # Tests may want to use this as a signal that the test can begin.
+ # This can be called from the testing thread, so it needs to acquire the
+ # global lock.
+ def wait_for_verack(self):
+ while True:
+ with mininode_lock:
+ if self.verack_received:
+ return
+ time.sleep(0.05)
+
# The actual NodeConn class
# This class provides an interface for a p2p connection to a specified node
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Mar 1, 10:37 (11 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5183690
Default Alt Text
D968.diff (12 KB)
Attached To
D968: Remove SingleNodeConnCB
Event Timeline
Log In to Comment