From 016fcc2372ddd1b10cb2465741ef668da7649cee Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Tue, 25 Sep 2018 09:25:56 +0100 Subject: [PATCH] Add test for $test publishing bug. --- test/broker/03-publish-dollar.py | 40 ++++++++++++++++++++++++++++++++ test/broker/Makefile | 1 + test/broker/ptest.py | 1 + 3 files changed, 42 insertions(+) create mode 100755 test/broker/03-publish-dollar.py diff --git a/test/broker/03-publish-dollar.py b/test/broker/03-publish-dollar.py new file mode 100755 index 00000000..4b2d3787 --- /dev/null +++ b/test/broker/03-publish-dollar.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python + +# Test whether a PUBLISH to a topic starting with $ succeeds + +import inspect, os, sys +# From http://stackoverflow.com/questions/279237/python-import-a-module-from-a-folder +cmd_subfolder = os.path.realpath(os.path.abspath(os.path.join(os.path.split(inspect.getfile( inspect.currentframe() ))[0],".."))) +if cmd_subfolder not in sys.path: + sys.path.insert(0, cmd_subfolder) + +import mosq_test + +rc = 1 +mid = 19 +keepalive = 60 +connect_packet = mosq_test.gen_connect("pub-dollar-test", keepalive=keepalive) +connack_packet = mosq_test.gen_connack(rc=0) + +publish_packet = mosq_test.gen_publish("$test/test", qos=1, mid=mid, payload="message") +puback_packet = mosq_test.gen_puback(mid) + +port = mosq_test.get_port() +broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port) + +try: + sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port) + mosq_test.do_send_receive(sock, publish_packet, puback_packet, "puback") + + rc = 0 + + sock.close() +finally: + broker.terminate() + broker.wait() + (stdo, stde) = broker.communicate() + if rc: + print(stde) + +exit(rc) + diff --git a/test/broker/Makefile b/test/broker/Makefile index 70da8799..0b4fee08 100644 --- a/test/broker/Makefile +++ b/test/broker/Makefile @@ -62,6 +62,7 @@ endif ./03-pattern-matching.py #./03-publish-qos1-queued-bytes.py ./03-publish-invalid-utf8.py + ./03-publish-dollar.py 04 : ./04-retain-qos0.py diff --git a/test/broker/ptest.py b/test/broker/ptest.py index dab515a7..27b0df6d 100755 --- a/test/broker/ptest.py +++ b/test/broker/ptest.py @@ -44,6 +44,7 @@ tests = [ (1, './03-pattern-matching.py'), #(1, './03-publish-qos1-queued-bytes.py'), (1, './03-publish-invalid-utf8.py'), + (1, './03-publish-dollar.py'), (1, './04-retain-qos0.py'), (1, './04-retain-qos0-fresh.py'),