diff --git a/test/broker/04-retain-check-source-persist-diff-port.py b/test/broker/04-retain-check-source-persist-diff-port.py index fddeba48..e159a105 100755 --- a/test/broker/04-retain-check-source-persist-diff-port.py +++ b/test/broker/04-retain-check-source-persist-diff-port.py @@ -29,7 +29,7 @@ def write_acl_2(filename, username): f.write('topic read test/topic\n') -def do_test(per_listener, username): +def do_test(proto_ver, per_listener, username): conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port1, port2, per_listener) @@ -45,8 +45,8 @@ def do_test(per_listener, username): rc = 1 keepalive = 60 - connect_packet = mosq_test.gen_connect("retain-check", keepalive=keepalive, username=username) - connack_packet = mosq_test.gen_connack(rc=0) + connect_packet = mosq_test.gen_connect("retain-check", keepalive=keepalive, username=username, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) if per_listener == "true": u = None @@ -55,13 +55,13 @@ def do_test(per_listener, username): # unless we provide a username u = username - connect2_packet = mosq_test.gen_connect("retain-recv", keepalive=keepalive, username=u) - connack2_packet = mosq_test.gen_connack(rc=0) + connect2_packet = mosq_test.gen_connect("retain-recv", keepalive=keepalive, username=u, proto_ver=proto_ver) + connack2_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) mid = 1 - publish_packet = mosq_test.gen_publish("test/topic", qos=0, payload="retained message", retain=True) - subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 0) - suback_packet = mosq_test.gen_suback(mid, 0) + publish_packet = mosq_test.gen_publish("test/topic", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) broker = mosq_test.start_broker(filename=os.path.basename(__file__), use_conf=True, port=port1) @@ -108,7 +108,12 @@ def do_test(per_listener, username): (port1, port2) = mosq_test.get_port(2) -do_test("true", username=None) -do_test("true", username="test") -do_test("false", username=None) -do_test("false", username="test") +do_test(proto_ver=4, per_listener="true", username=None) +do_test(proto_ver=4, per_listener="true", username="test") +do_test(proto_ver=4, per_listener="false", username=None) +do_test(proto_ver=4, per_listener="false", username="test") + +do_test(proto_ver=5, per_listener="true", username=None) +do_test(proto_ver=5, per_listener="true", username="test") +do_test(proto_ver=5, per_listener="false", username=None) +do_test(proto_ver=5, per_listener="false", username="test") diff --git a/test/broker/04-retain-check-source-persist.py b/test/broker/04-retain-check-source-persist.py index 0fbd475b..c5bee3f3 100755 --- a/test/broker/04-retain-check-source-persist.py +++ b/test/broker/04-retain-check-source-persist.py @@ -27,7 +27,7 @@ def write_acl_2(filename, username): f.write('topic read test/topic\n') -def do_test(per_listener, username): +def do_test(proto_ver, per_listener, username): conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port, per_listener) @@ -43,13 +43,13 @@ def do_test(per_listener, username): rc = 1 keepalive = 60 - connect_packet = mosq_test.gen_connect("retain-check", keepalive=keepalive, username=username) - connack_packet = mosq_test.gen_connack(rc=0) + connect_packet = mosq_test.gen_connect("retain-check", keepalive=keepalive, username=username, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) mid = 1 - publish_packet = mosq_test.gen_publish("test/topic", qos=0, payload="retained message", retain=True) - subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 0) - suback_packet = mosq_test.gen_suback(mid, 0) + publish_packet = mosq_test.gen_publish("test/topic", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) broker = mosq_test.start_broker(filename=os.path.basename(__file__), use_conf=True, port=port) @@ -91,7 +91,12 @@ def do_test(per_listener, username): port = mosq_test.get_port() -do_test("true", username=None) -do_test("true", username="test") -do_test("false", username=None) -do_test("false", username="test") +do_test(proto_ver=4, per_listener="true", username=None) +do_test(proto_ver=4, per_listener="true", username="test") +do_test(proto_ver=4, per_listener="false", username=None) +do_test(proto_ver=4, per_listener="false", username="test") + +do_test(proto_ver=5, per_listener="true", username=None) +do_test(proto_ver=5, per_listener="true", username="test") +do_test(proto_ver=5, per_listener="false", username=None) +do_test(proto_ver=5, per_listener="false", username="test") diff --git a/test/broker/04-retain-check-source.py b/test/broker/04-retain-check-source.py index b3adecb4..20a21ea4 100755 --- a/test/broker/04-retain-check-source.py +++ b/test/broker/04-retain-check-source.py @@ -21,7 +21,7 @@ def write_acl_2(filename): f.write('topic read test/topic\n') -def do_test(per_listener): +def do_test(proto_ver, per_listener): conf_file = os.path.basename(__file__).replace('.py', '.conf') write_config(conf_file, port, per_listener) @@ -31,13 +31,13 @@ def do_test(per_listener): rc = 1 keepalive = 60 - connect_packet = mosq_test.gen_connect("retain-check", keepalive=keepalive) - connack_packet = mosq_test.gen_connack(rc=0) + connect_packet = mosq_test.gen_connect("retain-check", keepalive=keepalive, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) mid = 1 - publish_packet = mosq_test.gen_publish("test/topic", qos=0, payload="retained message", retain=True) - subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 0) - suback_packet = mosq_test.gen_suback(mid, 0) + publish_packet = mosq_test.gen_publish("test/topic", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "test/topic", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) broker = mosq_test.start_broker(filename=os.path.basename(__file__), use_conf=True, port=port) @@ -74,5 +74,9 @@ def do_test(per_listener): exit(rc) port = mosq_test.get_port() -do_test("true") -do_test("false") + +do_test(proto_ver=4, per_listener="true") +do_test(proto_ver=4, per_listener="false") + +do_test(proto_ver=5, per_listener="true") +do_test(proto_ver=5, per_listener="false") diff --git a/test/broker/04-retain-qos0-clear.py b/test/broker/04-retain-qos0-clear.py index 48ca6036..8698cc24 100755 --- a/test/broker/04-retain-qos0-clear.py +++ b/test/broker/04-retain-qos0-clear.py @@ -5,56 +5,62 @@ from mosq_test_helper import * -rc = 1 -keepalive = 60 -connect_packet = mosq_test.gen_connect("retain-clear-test", keepalive=keepalive) -connack_packet = mosq_test.gen_connack(rc=0) - -publish_packet = mosq_test.gen_publish("retain/clear/test", qos=0, payload="retained message", retain=True) -retain_clear_packet = mosq_test.gen_publish("retain/clear/test", qos=0, payload=None, retain=True) -mid_sub = 592 -subscribe_packet = mosq_test.gen_subscribe(mid_sub, "retain/clear/test", 0) -suback_packet = mosq_test.gen_suback(mid_sub, 0) - -mid_unsub = 593 -unsubscribe_packet = mosq_test.gen_unsubscribe(mid_unsub, "retain/clear/test") -unsuback_packet = mosq_test.gen_unsuback(mid_unsub) - -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, timeout=4, port=port) - # Send retained message - sock.send(publish_packet) - # Subscribe to topic, we should get the retained message back. - mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") - - if mosq_test.expect_packet(sock, "publish", publish_packet): - # Now unsubscribe from the topic before we clear the retained - # message. - mosq_test.do_send_receive(sock, unsubscribe_packet, unsuback_packet, "unsuback") - - # Now clear the retained message. - sock.send(retain_clear_packet) - - # Subscribe to topic, we shouldn't get anything back apart - # from the SUBACK. + +def do_test(proto_ver): + rc = 1 + keepalive = 60 + connect_packet = mosq_test.gen_connect("retain-clear-test", keepalive=keepalive, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + + publish_packet = mosq_test.gen_publish("retain/clear/test", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + retain_clear_packet = mosq_test.gen_publish("retain/clear/test", qos=0, payload=None, retain=True, proto_ver=proto_ver) + mid_sub = 592 + subscribe_packet = mosq_test.gen_subscribe(mid_sub, "retain/clear/test", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid_sub, 0, proto_ver=proto_ver) + + mid_unsub = 593 + unsubscribe_packet = mosq_test.gen_unsubscribe(mid_unsub, "retain/clear/test", proto_ver=proto_ver) + unsuback_packet = mosq_test.gen_unsuback(mid_unsub, proto_ver=proto_ver) + + 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, timeout=4, port=port) + # Send retained message + sock.send(publish_packet) + # Subscribe to topic, we should get the retained message back. mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") - time.sleep(1) - # If we do get something back, it should be before this ping, so if - # this succeeds then we're ok. - mosq_test.do_ping(sock) - # This is the expected event - rc = 0 - - sock.close() -finally: - broker.terminate() - broker.wait() - (stdo, stde) = broker.communicate() - if rc: - print(stde.decode('utf-8')) - -exit(rc) + + if mosq_test.expect_packet(sock, "publish", publish_packet): + # Now unsubscribe from the topic before we clear the retained + # message. + mosq_test.do_send_receive(sock, unsubscribe_packet, unsuback_packet, "unsuback") + + # Now clear the retained message. + sock.send(retain_clear_packet) + + # Subscribe to topic, we shouldn't get anything back apart + # from the SUBACK. + mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") + time.sleep(1) + # If we do get something back, it should be before this ping, so if + # this succeeds then we're ok. + mosq_test.do_ping(sock) + # This is the expected event + rc = 0 + + sock.close() + finally: + broker.terminate() + broker.wait() + (stdo, stde) = broker.communicate() + if rc: + print(stde.decode('utf-8')) + print("proto_ver=%d" % (proto_ver)) + exit(rc) + +do_test(proto_ver=4) +do_test(proto_ver=5) +exit(0) diff --git a/test/broker/04-retain-qos0-fresh.py b/test/broker/04-retain-qos0-fresh.py index 420a8d94..654116d5 100755 --- a/test/broker/04-retain-qos0-fresh.py +++ b/test/broker/04-retain-qos0-fresh.py @@ -5,34 +5,40 @@ from mosq_test_helper import * -rc = 1 -keepalive = 60 -mid = 16 -connect_packet = mosq_test.gen_connect("retain-qos0-fresh-test", keepalive=keepalive) -connack_packet = mosq_test.gen_connack(rc=0) - -publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True) -publish_fresh_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message") -subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 0) -suback_packet = mosq_test.gen_suback(mid, 0) - -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, subscribe_packet, suback_packet, "suback") - mosq_test.do_send_receive(sock, publish_packet, publish_fresh_packet, "publish") - - rc = 0 - - sock.close() -finally: - broker.terminate() - broker.wait() - (stdo, stde) = broker.communicate() - if rc: - print(stde.decode('utf-8')) - -exit(rc) +def do_test(proto_ver): + rc = 1 + keepalive = 60 + mid = 16 + connect_packet = mosq_test.gen_connect("retain-qos0-fresh-test", keepalive=keepalive, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + + publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + publish_fresh_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) + + 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, subscribe_packet, suback_packet, "suback") + mosq_test.do_send_receive(sock, publish_packet, publish_fresh_packet, "publish") + + rc = 0 + + sock.close() + finally: + broker.terminate() + broker.wait() + (stdo, stde) = broker.communicate() + if rc: + print(stde.decode('utf-8')) + print("proto_ver=%d" % (proto_ver)) + exit(rc) + + +do_test(proto_ver=4) +do_test(proto_ver=5) +exit(0) diff --git a/test/broker/04-retain-qos0-repeated.py b/test/broker/04-retain-qos0-repeated.py index 5f638589..2b99354a 100755 --- a/test/broker/04-retain-qos0-repeated.py +++ b/test/broker/04-retain-qos0-repeated.py @@ -5,42 +5,48 @@ from mosq_test_helper import * -rc = 1 -keepalive = 60 -mid = 16 -connect_packet = mosq_test.gen_connect("retain-qos0-rep-test", keepalive=keepalive) -connack_packet = mosq_test.gen_connack(rc=0) - -publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True) -subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 0) -suback_packet = mosq_test.gen_suback(mid, 0) - -unsub_mid = 13 -unsubscribe_packet = mosq_test.gen_unsubscribe(unsub_mid, "retain/qos0/test") -unsuback_packet = mosq_test.gen_unsuback(unsub_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, timeout=20, port=port) - sock.send(publish_packet) - mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") - - if mosq_test.expect_packet(sock, "publish", publish_packet): - mosq_test.do_send_receive(sock, unsubscribe_packet, unsuback_packet, "unsuback") - mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") - if mosq_test.expect_packet(sock, "publish", publish_packet): - rc = 0 +def do_test(proto_ver): + rc = 1 + keepalive = 60 + mid = 16 + connect_packet = mosq_test.gen_connect("retain-qos0-rep-test", keepalive=keepalive, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + + publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) - sock.close() -finally: - broker.terminate() - broker.wait() - (stdo, stde) = broker.communicate() - if rc: - print(stde.decode('utf-8')) + unsub_mid = 13 + unsubscribe_packet = mosq_test.gen_unsubscribe(unsub_mid, "retain/qos0/test", proto_ver=proto_ver) + unsuback_packet = mosq_test.gen_unsuback(unsub_mid, proto_ver=proto_ver) -exit(rc) + 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, timeout=20, port=port) + sock.send(publish_packet) + mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") + + if mosq_test.expect_packet(sock, "publish", publish_packet): + mosq_test.do_send_receive(sock, unsubscribe_packet, unsuback_packet, "unsuback") + mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") + + if mosq_test.expect_packet(sock, "publish", publish_packet): + rc = 0 + + sock.close() + finally: + broker.terminate() + broker.wait() + (stdo, stde) = broker.communicate() + if rc: + print(stde.decode('utf-8')) + print("proto_ver=%d" % (proto_ver)) + exit(rc) + + +do_test(proto_ver=4) +do_test(proto_ver=5) +exit(0) diff --git a/test/broker/04-retain-qos0.py b/test/broker/04-retain-qos0.py index c789ee15..0e4d281e 100755 --- a/test/broker/04-retain-qos0.py +++ b/test/broker/04-retain-qos0.py @@ -4,34 +4,40 @@ from mosq_test_helper import * -rc = 1 -keepalive = 60 -mid = 16 -connect_packet = mosq_test.gen_connect("retain-qos0-test", keepalive=keepalive) -connack_packet = mosq_test.gen_connack(rc=0) - -publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True) -subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 0) -suback_packet = mosq_test.gen_suback(mid, 0) - -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) - sock.send(publish_packet) - mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") - - if mosq_test.expect_packet(sock, "publish", publish_packet): - rc = 0 - - sock.close() -finally: - broker.terminate() - broker.wait() - (stdo, stde) = broker.communicate() - if rc: - print(stde.decode('utf-8')) - -exit(rc) +def do_test(proto_ver): + rc = 1 + keepalive = 60 + mid = 16 + connect_packet = mosq_test.gen_connect("retain-qos0-test", keepalive=keepalive, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + + publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) + + 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) + sock.send(publish_packet) + mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") + + if mosq_test.expect_packet(sock, "publish", publish_packet): + rc = 0 + + sock.close() + finally: + broker.terminate() + broker.wait() + (stdo, stde) = broker.communicate() + if rc: + print(stde.decode('utf-8')) + print("proto_ver=%d" % (proto_ver)) + exit(rc) + + +do_test(proto_ver=4) +do_test(proto_ver=5) +exit(0) diff --git a/test/broker/04-retain-qos1-qos0.py b/test/broker/04-retain-qos1-qos0.py index ea71956e..58fc93f0 100755 --- a/test/broker/04-retain-qos1-qos0.py +++ b/test/broker/04-retain-qos1-qos0.py @@ -6,37 +6,46 @@ from mosq_test_helper import * -rc = 1 -keepalive = 60 -connect_packet = mosq_test.gen_connect("retain-qos1-test", keepalive=keepalive) -connack_packet = mosq_test.gen_connack(rc=0) - -mid = 6 -publish_packet = mosq_test.gen_publish("retain/qos1/test", qos=1, mid=mid, payload="retained message", retain=True) -puback_packet = mosq_test.gen_puback(mid) -mid = 18 -subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos1/test", 0) -suback_packet = mosq_test.gen_suback(mid, 0) -publish0_packet = mosq_test.gen_publish("retain/qos1/test", qos=0, payload="retained message", retain=True) - -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") - mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") - - if mosq_test.expect_packet(sock, "publish0", publish0_packet): - rc = 0 - - sock.close() -finally: - broker.terminate() - broker.wait() - (stdo, stde) = broker.communicate() - if rc: - print(stde.decode('utf-8')) - -exit(rc) - +def do_test(proto_ver): + rc = 1 + keepalive = 60 + connect_packet = mosq_test.gen_connect("retain-qos1-test", keepalive=keepalive, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) + + mid = 6 + publish_packet = mosq_test.gen_publish("retain/qos1/test", qos=1, mid=mid, payload="retained message", retain=True, proto_ver=proto_ver) + if proto_ver == 5: + puback_packet = mosq_test.gen_puback(mid, proto_ver=proto_ver, reason_code=mqtt5_rc.MQTT_RC_NO_MATCHING_SUBSCRIBERS) + else: + puback_packet = mosq_test.gen_puback(mid, proto_ver=proto_ver) + + mid = 18 + subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos1/test", 0, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) + publish0_packet = mosq_test.gen_publish("retain/qos1/test", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + + 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") + mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") + + if mosq_test.expect_packet(sock, "publish0", publish0_packet): + rc = 0 + + sock.close() + finally: + broker.terminate() + broker.wait() + (stdo, stde) = broker.communicate() + if rc: + print(stde.decode('utf-8')) + print("proto_ver=%d" % (proto_ver)) + exit(rc) + + +do_test(proto_ver=4) +do_test(proto_ver=5) +exit(0) diff --git a/test/broker/04-retain-upgrade-outgoing-qos.py b/test/broker/04-retain-upgrade-outgoing-qos.py index e9f02954..5b7f0196 100755 --- a/test/broker/04-retain-upgrade-outgoing-qos.py +++ b/test/broker/04-retain-upgrade-outgoing-qos.py @@ -10,41 +10,46 @@ def write_config(filename, port): f.write("port %d\n" % (port)) f.write("upgrade_outgoing_qos true\n") -port = mosq_test.get_port() -conf_file = os.path.basename(__file__).replace('.py', '.conf') -write_config(conf_file, port) -rc = 1 -keepalive = 60 -mid = 16 -connect_packet = mosq_test.gen_connect("retain-qos0-test", keepalive=keepalive) -connack_packet = mosq_test.gen_connack(rc=0) +def do_test(proto_ver): + port = mosq_test.get_port() + conf_file = os.path.basename(__file__).replace('.py', '.conf') + write_config(conf_file, port) -publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True) -subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 1) -suback_packet = mosq_test.gen_suback(mid, 1) + rc = 1 + keepalive = 60 + mid = 16 + connect_packet = mosq_test.gen_connect("retain-qos0-test", keepalive=keepalive, proto_ver=proto_ver) + connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) -publish_packet2 = mosq_test.gen_publish("retain/qos0/test", mid=1, qos=1, payload="retained message", retain=True) + publish_packet = mosq_test.gen_publish("retain/qos0/test", qos=0, payload="retained message", retain=True, proto_ver=proto_ver) + subscribe_packet = mosq_test.gen_subscribe(mid, "retain/qos0/test", 1, proto_ver=proto_ver) + suback_packet = mosq_test.gen_suback(mid, 1, proto_ver=proto_ver) -broker = mosq_test.start_broker(filename=os.path.basename(__file__), use_conf=True, port=port) + publish_packet2 = mosq_test.gen_publish("retain/qos0/test", mid=1, qos=1, payload="retained message", retain=True, proto_ver=proto_ver) -try: - sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port) - sock.send(publish_packet) + broker = mosq_test.start_broker(filename=os.path.basename(__file__), use_conf=True, port=port) - mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") + try: + sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port) + sock.send(publish_packet) - if mosq_test.expect_packet(sock, "publish", publish_packet2): - rc = 0 + mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") - sock.close() -finally: - os.remove(conf_file) - broker.terminate() - broker.wait() - (stdo, stde) = broker.communicate() - if rc: - print(stde.decode('utf-8')) + if mosq_test.expect_packet(sock, "publish", publish_packet2): + rc = 0 -exit(rc) + sock.close() + finally: + os.remove(conf_file) + broker.terminate() + broker.wait() + (stdo, stde) = broker.communicate() + if rc: + print(stde.decode('utf-8')) + print("proto_ver=%d" % (proto_ver)) + exit(rc) +do_test(proto_ver=4) +do_test(proto_ver=5) +exit(0)