28
28
NODE_WITNESS ,
29
29
)
30
30
31
+
31
32
def assert_net_servicesnames (servicesflag , servicenames ):
32
33
"""Utility that checks if all flags are correctly decoded in
33
34
`getpeerinfo` and `getnetworkinfo`.
@@ -40,6 +41,7 @@ def assert_net_servicesnames(servicesflag, servicenames):
40
41
servicesflag_generated |= getattr (test_framework .messages , 'NODE_' + servicename )
41
42
assert servicesflag_generated == servicesflag
42
43
44
+
43
45
class NetTest (BitcoinTestFramework ):
44
46
def set_test_params (self ):
45
47
self .setup_clean_chain = True
@@ -57,6 +59,7 @@ def run_test(self):
57
59
self ._test_getnetworkinfo ()
58
60
self ._test_getaddednodeinfo ()
59
61
self ._test_getpeerinfo ()
62
+ self .test_service_flags ()
60
63
self ._test_getnodeaddresses ()
61
64
62
65
def _test_connection_count (self ):
@@ -139,6 +142,11 @@ def _test_getpeerinfo(self):
139
142
for info in peer_info :
140
143
assert_net_servicesnames (int (info [0 ]["services" ], 0x10 ), info [0 ]["servicesnames" ])
141
144
145
+ def test_service_flags (self ):
146
+ self .nodes [0 ].add_p2p_connection (P2PInterface (), services = (1 << 4 ) | (1 << 63 ))
147
+ assert_equal (['UNKNOWN[2^4]' , 'UNKNOWN[2^63]' ], self .nodes [0 ].getpeerinfo ()[- 1 ]['servicesnames' ])
148
+ self .nodes [0 ].disconnect_p2ps ()
149
+
142
150
def _test_getnodeaddresses (self ):
143
151
self .nodes [0 ].add_p2p_connection (P2PInterface ())
144
152
@@ -174,5 +182,6 @@ def _test_getnodeaddresses(self):
174
182
node_addresses = self .nodes [0 ].getnodeaddresses (LARGE_REQUEST_COUNT )
175
183
assert_greater_than (LARGE_REQUEST_COUNT , len (node_addresses ))
176
184
185
+
177
186
if __name__ == '__main__' :
178
187
NetTest ().main ()
0 commit comments