From b9360bb1471eb4949927778a92d9c5d192e7a3c6 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Thu, 10 Oct 2019 14:51:32 +0100 Subject: [PATCH] Fixes for 06 broker v5 tests --- test/broker/06-bridge-b2br-disconnect-qos1.py | 16 +++++++++------- test/broker/06-bridge-b2br-disconnect-qos2.py | 16 ++++++++++------ .../06-bridge-b2br-late-connection-retain.py | 8 ++++---- test/broker/06-bridge-b2br-late-connection.py | 5 ++--- test/broker/06-bridge-b2br-remapping.py | 14 +++++++++----- test/broker/06-bridge-br2b-disconnect-qos1.py | 14 +++++++++----- test/broker/06-bridge-br2b-disconnect-qos2.py | 15 ++++++++++----- test/broker/06-bridge-br2b-remapping.py | 5 ++--- .../06-bridge-fail-persist-resend-qos1.py | 5 ++--- .../06-bridge-fail-persist-resend-qos2.py | 5 ++--- test/broker/06-bridge-no-local.py | 2 -- test/broker/06-bridge-per-listener-settings.py | 17 ++++++++++------- test/broker/06-bridge-reconnect-local-out.py | 5 ++--- 13 files changed, 71 insertions(+), 56 deletions(-) diff --git a/test/broker/06-bridge-b2br-disconnect-qos1.py b/test/broker/06-bridge-b2br-disconnect-qos1.py index 088db913..07849b02 100755 --- a/test/broker/06-bridge-b2br-disconnect-qos1.py +++ b/test/broker/06-bridge-b2br-disconnect-qos1.py @@ -15,10 +15,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("restart_timeout 5\n") f.write("bridge_protocol_version %s\n" %(protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - - def do_test(proto_ver): if proto_ver == 4: bridge_protocol = "mqttv311" @@ -27,6 +23,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 @@ -36,11 +34,16 @@ def do_test(proto_ver): connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) mid = 1 - subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1, proto_ver=proto_ver) + if proto_ver == 5: + opts = mqtt5_opts.MQTT_SUB_OPT_NO_LOCAL | mqtt5_opts.MQTT_SUB_OPT_RETAIN_AS_PUBLISHED + else: + opts = 0 + + subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 1, proto_ver=proto_ver) mid = 2 - subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1, proto_ver=proto_ver) + subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1 | opts, proto_ver=proto_ver) suback2_packet = mosq_test.gen_suback(mid, 1, proto_ver=proto_ver) mid = 3 @@ -109,4 +112,3 @@ do_test(proto_ver=4) do_test(proto_ver=5) exit(0) - diff --git a/test/broker/06-bridge-b2br-disconnect-qos2.py b/test/broker/06-bridge-b2br-disconnect-qos2.py index fd329645..82755d1e 100755 --- a/test/broker/06-bridge-b2br-disconnect-qos2.py +++ b/test/broker/06-bridge-b2br-disconnect-qos2.py @@ -15,9 +15,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("restart_timeout 5\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - def do_test(proto_ver): if proto_ver == 4: bridge_protocol = "mqttv311" @@ -26,6 +23,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 @@ -34,16 +33,21 @@ def do_test(proto_ver): connect_packet = mosq_test.gen_connect(client_id, keepalive=keepalive, clean_session=False, proto_ver=proto_ver_connect) connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + if proto_ver == 5: + opts = mqtt5_opts.MQTT_SUB_OPT_NO_LOCAL | mqtt5_opts.MQTT_SUB_OPT_RETAIN_AS_PUBLISHED + else: + opts = 0 + mid = 1 - subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 2, proto_ver=proto_ver) mid = 2 - subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2, proto_ver=proto_ver) + subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2 | opts, proto_ver=proto_ver) suback2_packet = mosq_test.gen_suback(mid, 2, proto_ver=proto_ver) mid = 3 - subscribe3_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2, proto_ver=proto_ver) + subscribe3_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2 | opts, proto_ver=proto_ver) suback3_packet = mosq_test.gen_suback(mid, 2, proto_ver=proto_ver) mid = 5 diff --git a/test/broker/06-bridge-b2br-late-connection-retain.py b/test/broker/06-bridge-b2br-late-connection-retain.py index 5434f5a5..8365c1b5 100755 --- a/test/broker/06-bridge-b2br-late-connection-retain.py +++ b/test/broker/06-bridge-b2br-late-connection-retain.py @@ -24,10 +24,6 @@ def write_config2(filename, persistence_file, port1, port2, protocol_version): f.write("persistence true\n") f.write("persistence_file %s\n" % (persistence_file)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') -persistence_file = os.path.basename(__file__).replace('.py', '.db') - def do_test(proto_ver): if proto_ver == 4: bridge_protocol = "mqttv311" @@ -36,6 +32,10 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') + persistence_file = os.path.basename(__file__).replace('.py', '.db') + rc = 1 keepalive = 60 client_id = socket.gethostname()+".bridge_sample" diff --git a/test/broker/06-bridge-b2br-late-connection.py b/test/broker/06-bridge-b2br-late-connection.py index ada5460d..58acb142 100755 --- a/test/broker/06-bridge-b2br-late-connection.py +++ b/test/broker/06-bridge-b2br-late-connection.py @@ -15,9 +15,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("bridge_attempt_unsubscribe false\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - def do_test(proto_ver): if proto_ver == 4: bridge_protocol = "mqttv311" @@ -26,6 +23,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 diff --git a/test/broker/06-bridge-b2br-remapping.py b/test/broker/06-bridge-b2br-remapping.py index a1798797..eb18ce6c 100755 --- a/test/broker/06-bridge-b2br-remapping.py +++ b/test/broker/06-bridge-b2br-remapping.py @@ -20,9 +20,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("restart_timeout 5\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - connect_packet = None connack_packet = None @@ -34,6 +31,11 @@ def inner_test(bridge, sock, proto_ver): return 1 bridge.send(connack_packet) + if proto_ver == 5: + opts = mqtt5_opts.MQTT_SUB_OPT_NO_LOCAL | mqtt5_opts.MQTT_SUB_OPT_RETAIN_AS_PUBLISHED + else: + opts = 0 + mid = 0 patterns = [ "remote/topic/#", @@ -44,14 +46,14 @@ def inner_test(bridge, sock, proto_ver): ] for pattern in ("remote/topic/#", "remote2/topic/prefix/#", "remote3/topic/+/value"): mid += 1 - subscribe_packet = mosq_test.gen_subscribe(mid, pattern, 0, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, pattern, 0 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) if not mosq_test.expect_packet(bridge, "subscribe", subscribe_packet): return 1 bridge.send(suback_packet) mid += 1 - subscribe_packet = mosq_test.gen_subscribe(mid, "#", 0, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "#", 0 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) sock.send(subscribe_packet) if not mosq_test.expect_packet(sock, "suback", suback_packet): @@ -96,6 +98,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 diff --git a/test/broker/06-bridge-br2b-disconnect-qos1.py b/test/broker/06-bridge-br2b-disconnect-qos1.py index e08cfd9c..7243ad50 100755 --- a/test/broker/06-bridge-br2b-disconnect-qos1.py +++ b/test/broker/06-bridge-br2b-disconnect-qos1.py @@ -15,9 +15,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("restart_timeout 5\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - def do_test(proto_ver): if proto_ver == 4: @@ -27,6 +24,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 @@ -35,12 +34,17 @@ def do_test(proto_ver): connect_packet = mosq_test.gen_connect(client_id, keepalive=keepalive, clean_session=False, proto_ver=proto_ver_connect) connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + if proto_ver == 5: + opts = mqtt5_opts.MQTT_SUB_OPT_NO_LOCAL | mqtt5_opts.MQTT_SUB_OPT_RETAIN_AS_PUBLISHED + else: + opts = 0 + mid = 1 - subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 1, proto_ver=proto_ver) mid = 3 - subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1, proto_ver=proto_ver) + subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 1 | opts, proto_ver=proto_ver) suback2_packet = mosq_test.gen_suback(mid, 1, proto_ver=proto_ver) mid = 2 diff --git a/test/broker/06-bridge-br2b-disconnect-qos2.py b/test/broker/06-bridge-br2b-disconnect-qos2.py index 524012d9..68c87470 100755 --- a/test/broker/06-bridge-br2b-disconnect-qos2.py +++ b/test/broker/06-bridge-br2b-disconnect-qos2.py @@ -15,8 +15,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("restart_timeout 5\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') def do_test(proto_ver): if proto_ver == 4: @@ -26,6 +24,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 @@ -34,16 +34,21 @@ def do_test(proto_ver): connect_packet = mosq_test.gen_connect(client_id, keepalive=keepalive, clean_session=False, proto_ver=proto_ver_connect) connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + if proto_ver == 5: + opts = mqtt5_opts.MQTT_SUB_OPT_NO_LOCAL | mqtt5_opts.MQTT_SUB_OPT_RETAIN_AS_PUBLISHED + else: + opts = 0 + mid = 1 - subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 2, proto_ver=proto_ver) mid = 3 - subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2, proto_ver=proto_ver) + subscribe2_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2 | opts, proto_ver=proto_ver) suback2_packet = mosq_test.gen_suback(mid, 2, proto_ver=proto_ver) mid = 4 - subscribe3_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2, proto_ver=proto_ver) + subscribe3_packet = mosq_test.gen_subscribe(mid, "bridge/#", 2 | opts, proto_ver=proto_ver) suback3_packet = mosq_test.gen_suback(mid, 2, proto_ver=proto_ver) mid = 2 diff --git a/test/broker/06-bridge-br2b-remapping.py b/test/broker/06-bridge-br2b-remapping.py index bfe1240a..a19fc260 100755 --- a/test/broker/06-bridge-br2b-remapping.py +++ b/test/broker/06-bridge-br2b-remapping.py @@ -21,9 +21,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("restart_timeout 5\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - def inner_test(bridge, sock, proto_ver): global connect_packet, connack_packet @@ -82,6 +79,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 diff --git a/test/broker/06-bridge-fail-persist-resend-qos1.py b/test/broker/06-bridge-fail-persist-resend-qos1.py index 106eb88e..fdce7889 100755 --- a/test/broker/06-bridge-fail-persist-resend-qos1.py +++ b/test/broker/06-bridge-fail-persist-resend-qos1.py @@ -20,9 +20,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - def do_test(proto_ver): if proto_ver == 4: @@ -32,6 +29,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 diff --git a/test/broker/06-bridge-fail-persist-resend-qos2.py b/test/broker/06-bridge-fail-persist-resend-qos2.py index 65634dca..9deefacf 100755 --- a/test/broker/06-bridge-fail-persist-resend-qos2.py +++ b/test/broker/06-bridge-fail-persist-resend-qos2.py @@ -19,9 +19,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("try_private false\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - def do_test(proto_ver): if proto_ver == 4: @@ -31,6 +28,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, bridge_protocol) rc = 1 diff --git a/test/broker/06-bridge-no-local.py b/test/broker/06-bridge-no-local.py index 7b54a14e..88851a3c 100755 --- a/test/broker/06-bridge-no-local.py +++ b/test/broker/06-bridge-no-local.py @@ -5,8 +5,6 @@ from mosq_test_helper import * -port = mosq_test.get_port() - def do_test(proto_ver_connect, proto_ver_msgs, sub_opts): rc = 1 keepalive = 60 diff --git a/test/broker/06-bridge-per-listener-settings.py b/test/broker/06-bridge-per-listener-settings.py index 56f1a272..9911066d 100755 --- a/test/broker/06-bridge-per-listener-settings.py +++ b/test/broker/06-bridge-per-listener-settings.py @@ -22,10 +22,6 @@ def write_config(filename, port1, port2, port3, protocol_version): f.write("restart_timeout 5\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2, port3) = mosq_test.get_port(3) -conf_file = os.path.basename(__file__).replace('.py', '.conf') - - def inner_test(bridge, sock, proto_ver): global connect_packet, connack_packet @@ -34,6 +30,11 @@ def inner_test(bridge, sock, proto_ver): return 1 bridge.send(connack_packet) + if proto_ver == 5: + opts = mqtt5_opts.MQTT_SUB_OPT_NO_LOCAL | mqtt5_opts.MQTT_SUB_OPT_RETAIN_AS_PUBLISHED + else: + opts = 0 + mid = 0 patterns = [ "remote/topic/#", @@ -44,14 +45,14 @@ def inner_test(bridge, sock, proto_ver): ] for pattern in ("remote/topic/#", "remote2/topic/prefix/#", "remote3/topic/+/value"): mid += 1 - subscribe_packet = mosq_test.gen_subscribe(mid, pattern, 0, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, pattern, 0 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) if not mosq_test.expect_packet(bridge, "subscribe", subscribe_packet): return 1 bridge.send(suback_packet) mid += 1 - subscribe_packet = mosq_test.gen_subscribe(mid, "#", 0, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "#", 0 | opts, proto_ver=proto_ver) suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) sock.send(subscribe_packet) if not mosq_test.expect_packet(sock, "suback", suback_packet): @@ -96,7 +97,10 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2, port3) = mosq_test.get_port(3) + conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, port3, bridge_protocol) + rc = 1 keepalive = 60 client_id = socket.gethostname()+".bridge_sample" @@ -114,7 +118,6 @@ def do_test(proto_ver): broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port2, use_conf=True) - try: (bridge, address) = ssock.accept() bridge.settimeout(2) diff --git a/test/broker/06-bridge-reconnect-local-out.py b/test/broker/06-bridge-reconnect-local-out.py index 631ec1af..ae7081f2 100755 --- a/test/broker/06-bridge-reconnect-local-out.py +++ b/test/broker/06-bridge-reconnect-local-out.py @@ -17,9 +17,6 @@ def write_config(filename, port1, port2, protocol_version): f.write("topic bridge/# out\n") f.write("bridge_protocol_version %s\n" % (protocol_version)) -(port1, port2) = mosq_test.get_port(2) -conf_file = '06-bridge-reconnect-local-out.conf' - def do_test(proto_ver): if proto_ver == 4: @@ -29,6 +26,8 @@ def do_test(proto_ver): bridge_protocol = "mqttv50" proto_ver_connect = 5 + (port1, port2) = mosq_test.get_port(2) + conf_file = '06-bridge-reconnect-local-out.conf' write_config(conf_file, port1, port2, bridge_protocol) rc = 1