diff options
Diffstat (limited to 'gr-zeromq/python/zeromq/qa_zeromq_sub.py')
-rwxr-xr-x | gr-zeromq/python/zeromq/qa_zeromq_sub.py | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/gr-zeromq/python/zeromq/qa_zeromq_sub.py b/gr-zeromq/python/zeromq/qa_zeromq_sub.py index 63d8a978ef..9e82420c24 100755 --- a/gr-zeromq/python/zeromq/qa_zeromq_sub.py +++ b/gr-zeromq/python/zeromq/qa_zeromq_sub.py @@ -48,7 +48,6 @@ class qa_zeromq_sub (gr_unittest.TestCase): def test_002 (self): vlen = 10 - # Construct multipart source data to publish raw_data = [numpy.array(range(vlen), 'float32')*100, numpy.array(range(vlen, 2*vlen), 'float32')*100] src_data = [a.tostring() for a in raw_data] @@ -67,6 +66,50 @@ class qa_zeromq_sub (gr_unittest.TestCase): expected_data = numpy.concatenate(raw_data) self.assertFloatTuplesAlmostEqual(sink.data(), expected_data) + def test_003 (self): + # Check that message is received when correct key is used + # Construct multipart source data to publish + vlen = 10 + raw_data = [numpy.array(range(vlen), 'float32')*100, numpy.array(range(vlen, 2*vlen), 'float32')*100] + src_data = [a.tostring() for a in raw_data] + + src_data = [b"filter_key"] + src_data + + zeromq_sub_source = zeromq.sub_source(gr.sizeof_float, vlen, self._address, key="filter_key") + sink = blocks.vector_sink_f(vlen) + self.tb.connect(zeromq_sub_source, sink) + + self.tb.start() + time.sleep(0.05) + self.pub_socket.send_multipart(src_data) + time.sleep(0.5) + self.tb.stop() + self.tb.wait() + + # Source block will concatenate everything together + expected_data = numpy.concatenate(raw_data) + self.assertFloatTuplesAlmostEqual(sink.data(), expected_data) + + def test_004 (self): + # Test that no message is received when wrong key is used + vlen = 10 + raw_data = [numpy.array(range(vlen), 'float32')*100, numpy.array(range(vlen, 2*vlen), 'float32')*100] + src_data = [a.tostring() for a in raw_data] + + src_data = [b"filter_key"] + src_data + + zeromq_sub_source = zeromq.sub_source(gr.sizeof_float, vlen, self._address, key="wrong_filter_key") + sink = blocks.vector_sink_f(vlen) + self.tb.connect(zeromq_sub_source, sink) + + self.tb.start() + time.sleep(0.05) + self.pub_socket.send_multipart(src_data) + time.sleep(0.5) + self.tb.stop() + self.tb.wait() + + assert( len(sink.data()) == 0 ) if __name__ == '__main__': gr_unittest.run(qa_zeromq_sub) |