From c28ee91db07ce82e134d500ddeb5600363c98048 Mon Sep 17 00:00:00 2001 From: John Newbery Date: Thu, 9 Mar 2017 09:44:57 -0500 Subject: Rename rpc-tests directory to functional --- test/functional/zmq_test.py | 94 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100755 test/functional/zmq_test.py (limited to 'test/functional/zmq_test.py') diff --git a/test/functional/zmq_test.py b/test/functional/zmq_test.py new file mode 100755 index 0000000000..e6f18b0b93 --- /dev/null +++ b/test/functional/zmq_test.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 +# Copyright (c) 2015-2016 The Bitcoin Core developers +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +"""Test the ZMQ API.""" + +from test_framework.test_framework import BitcoinTestFramework +from test_framework.util import * +import zmq +import struct + +class ZMQTest (BitcoinTestFramework): + + def __init__(self): + super().__init__() + self.num_nodes = 4 + + port = 28332 + + def setup_nodes(self): + self.zmqContext = zmq.Context() + self.zmqSubSocket = self.zmqContext.socket(zmq.SUB) + self.zmqSubSocket.setsockopt(zmq.SUBSCRIBE, b"hashblock") + self.zmqSubSocket.setsockopt(zmq.SUBSCRIBE, b"hashtx") + self.zmqSubSocket.connect("tcp://127.0.0.1:%i" % self.port) + return start_nodes(self.num_nodes, self.options.tmpdir, extra_args=[ + ['-zmqpubhashtx=tcp://127.0.0.1:'+str(self.port), '-zmqpubhashblock=tcp://127.0.0.1:'+str(self.port)], + [], + [], + [] + ]) + + def run_test(self): + self.sync_all() + + genhashes = self.nodes[0].generate(1) + self.sync_all() + + self.log.info("listen...") + msg = self.zmqSubSocket.recv_multipart() + topic = msg[0] + assert_equal(topic, b"hashtx") + body = msg[1] + nseq = msg[2] + msgSequence = struct.unpack('