diff --git a/contrib/zmq/zmq_sub.py b/contrib/zmq/zmq_sub.py old mode 100644 new mode 100755 index e33c179c35e7c..85f624d025029 --- a/contrib/zmq/zmq_sub.py +++ b/contrib/zmq/zmq_sub.py @@ -4,8 +4,8 @@ import binascii port = 28332 -topic1 = "BLK" -topic2 = "TXN" +topic1 = "block" +topic2 = "tx" topic_len = len(topic1) zmqContext = zmq.Context() @@ -31,9 +31,9 @@ def handleTX(tx): msg_topic = str(msg[0]) msg_data = msg[1] - if msg_topic == "TXN": + if msg_topic == "tx": handleTX(msg_data) - elif msg_topic == "BLK": + elif msg_topic == "block": handleBLK(msg_data) except KeyboardInterrupt: diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh index 9b318650e9394..12c79542aafc5 100755 --- a/qa/pull-tester/rpc-tests.sh +++ b/qa/pull-tester/rpc-tests.sh @@ -32,6 +32,7 @@ testScripts=( 'merkle_blocks.py' 'signrawtransactions.py' 'walletbackup.py' + 'zmq_test.py' ); testScriptsExt=( 'bipdersig-p2p.py' diff --git a/qa/rpc-tests/zmq_test.py b/qa/rpc-tests/zmq_test.py index 1ebf33eda5fc2..808bf2eb21fe0 100755 --- a/qa/rpc-tests/zmq_test.py +++ b/qa/rpc-tests/zmq_test.py @@ -7,12 +7,12 @@ # Test ZMQ interface # -from test_framework import BitcoinTestFramework -from util import * +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import * import json import zmq import binascii -from mininode import hash256 +from test_framework.mininode import hash256 try: import http.client as httplib @@ -37,14 +37,14 @@ def handleTX(self, tx): def setup_nodes(self): self.zmqContext = zmq.Context() self.zmqSubSocket = self.zmqContext.socket(zmq.SUB) - self.zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "BLK") - self.zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "TXN") + self.zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "block") + self.zmqSubSocket.setsockopt(zmq.SUBSCRIBE, "tx") self.zmqSubSocket.connect("tcp://127.0.0.1:%i" % self.port) # Note: proxies are not used to connect to local nodes # this is because the proxy to use is based on CService.GetNetwork(), which return NET_UNROUTABLE for localhost return start_nodes(4, self.options.tmpdir, extra_args=[ - ['-zmqpub=tcp://127.0.0.1:'+str(self.port)], + ['-zmqpubhashblock=tcp://127.0.0.1:'+str(self.port), '-zmqpubhashtransaction=tcp://127.0.0.1:'+str(self.port)], [], [], [] @@ -54,7 +54,9 @@ def run_test(self): genhashes = self.nodes[0].generate(1); + print "goon" msg = self.zmqSubSocket.recv() + print "goon2" blkhash = self.handleBLK(msg[3:]) assert_equal(genhashes[0], blkhash) #blockhash from generate must be equal to the hash received over zmq @@ -77,8 +79,11 @@ def run_test(self): self.sync_all() #now we should receive a zmq msg because the tx was broadcastet + print "goon" msg = self.zmqSubSocket.recv() + print "ok" hashZMQ = self.handleTX(msg[3:]) + print hashZMQ assert_equal(hashRPC, hashZMQ) #blockhash from generate must be equal to the hash received over zmq