From 01dfb6fea178df9a499e188ca58b74765419bc6a Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Tue, 11 Oct 2022 21:52:43 +0100 Subject: [PATCH] Persist: Improve tests --- .../15-persist-client-msg-out-dup-v3-1-1.py | 6 ---- test/broker/15-persist-client-msg-out-v5-0.py | 12 ++++++-- .../15-persist-publish-properties-v5-0.py | 30 ++++++++++++------- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/test/broker/15-persist-client-msg-out-dup-v3-1-1.py b/test/broker/15-persist-client-msg-out-dup-v3-1-1.py index 6fced226..42282a3d 100755 --- a/test/broker/15-persist-client-msg-out-dup-v3-1-1.py +++ b/test/broker/15-persist-client-msg-out-dup-v3-1-1.py @@ -44,7 +44,6 @@ publish_packet_r2 = mosq_test.gen_publish(topic, mid=mid, qos=qos, payload=paylo broker = mosq_test.start_broker(filename=os.path.basename(__file__), use_conf=True, port=port) -con = None try: # Connect and set up subscription, then disconnect sock = mosq_test.do_client_connect(connect1_packet, connack1_packet, timeout=5, port=port) @@ -71,9 +70,6 @@ try: sock = mosq_test.do_client_connect(connect1_packet, connack1_packet2, timeout=5, port=port) mosq_test.expect_packet(sock, "publish 2", publish_packet_r2) - #con.close() - #con = None - (broker_terminate_rc, stde) = mosq_test.terminate_broker(broker) broker = None @@ -99,8 +95,6 @@ finally: print("broker not terminated (2)") if rc == 0: rc=1 (_, stde) = broker.communicate() - if con is not None: - con.close() os.remove(conf_file) rc += persist_help.cleanup(port) diff --git a/test/broker/15-persist-client-msg-out-v5-0.py b/test/broker/15-persist-client-msg-out-v5-0.py index b86c16cf..01746ca2 100755 --- a/test/broker/15-persist-client-msg-out-v5-0.py +++ b/test/broker/15-persist-client-msg-out-v5-0.py @@ -27,11 +27,17 @@ connect_packet = mosq_test.gen_connect(client_id, proto_ver=proto_ver, clean_ses connack_packet1 = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) connack_packet2 = mosq_test.gen_connack(rc=0, flags=1, proto_ver=proto_ver) mid = 1 -subscribe_packet0 = mosq_test.gen_subscribe(mid, topic0, qos=0, proto_ver=proto_ver) + +sub_props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 1) +subscribe_packet0 = mosq_test.gen_subscribe(mid, topic0, qos=0, proto_ver=proto_ver, properties=sub_props) suback_packet0 = mosq_test.gen_suback(mid=mid, qos=0, proto_ver=proto_ver) -subscribe_packet1 = mosq_test.gen_subscribe(mid, topic1, qos=1, proto_ver=proto_ver) + +sub_props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 2) +subscribe_packet1 = mosq_test.gen_subscribe(mid, topic1, qos=1, proto_ver=proto_ver, properties=sub_props) suback_packet1 = mosq_test.gen_suback(mid=mid, qos=1, proto_ver=proto_ver) -subscribe_packet2 = mosq_test.gen_subscribe(mid, topic2, qos=2, proto_ver=proto_ver) + +sub_props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 3) +subscribe_packet2 = mosq_test.gen_subscribe(mid, topic2, qos=2, proto_ver=proto_ver, properties=sub_props) suback_packet2 = mosq_test.gen_suback(mid=mid, qos=2, proto_ver=proto_ver) connect_packet_helper = mosq_test.gen_connect(helper_id, proto_ver=proto_ver, clean_session=True) diff --git a/test/broker/15-persist-publish-properties-v5-0.py b/test/broker/15-persist-publish-properties-v5-0.py index ffa00100..c3f57990 100755 --- a/test/broker/15-persist-publish-properties-v5-0.py +++ b/test/broker/15-persist-publish-properties-v5-0.py @@ -20,15 +20,15 @@ proto_ver = 5 connect_packet = mosq_test.gen_connect(source_id, proto_ver=proto_ver, clean_session=True) connack_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) -props = mqtt5_props.gen_byte_prop(mqtt5_props.PROP_PAYLOAD_FORMAT_INDICATOR, 1) -props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_CONTENT_TYPE, "plain/text") -props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_RESPONSE_TOPIC, "/dev/null") -props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_CORRELATION_DATA, "2357289375902345") -props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value4") -props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value3") -props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value2") -props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value1") -#props += mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_MESSAGE_EXPIRY_INTERVAL, 60) +base_props = mqtt5_props.gen_byte_prop(mqtt5_props.PROP_PAYLOAD_FORMAT_INDICATOR, 1) +base_props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_CONTENT_TYPE, "plain/text") +base_props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_RESPONSE_TOPIC, "/dev/null") +base_props += mqtt5_props.gen_string_prop(mqtt5_props.PROP_CORRELATION_DATA, "2357289375902345") +base_props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value4") +base_props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value3") +base_props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value2") +base_props += mqtt5_props.gen_string_pair_prop(mqtt5_props.PROP_USER_PROPERTY, "name", "value1") +props = base_props + mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_MESSAGE_EXPIRY_INTERVAL, 60) publish_packet = mosq_test.gen_publish(topic, qos=qos, payload="retained message 1", retain=True, proto_ver=proto_ver, properties=props) mid = 1 @@ -68,14 +68,22 @@ try: # Subscribe mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback") # Check retained messages exist - mosq_test.expect_packet(sock, "publish", publish_packet) + packet = sock.recv(len(publish_packet)) + for i in range(60, 1, -1): + props = base_props + mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_MESSAGE_EXPIRY_INTERVAL, i) + publish_packet = mosq_test.gen_publish(topic, qos=qos, payload="retained message 1", retain=True, proto_ver=proto_ver, properties=props) + if packet == publish_packet: + rc = 0 + break + mosq_test.do_ping(sock) (broker_terminate_rc, stde) = mosq_test.terminate_broker(broker) broker = None persist_help.check_counts(port, base_msgs=1, retain_msgs=1) - rc = broker_terminate_rc + if rc == 0: + rc = broker_terminate_rc finally: if broker is not None: broker.terminate()