From 16f57cc834c3b105f6e9f41d01f3f9be8fedd8a9 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Thu, 10 Oct 2019 12:40:44 +0100 Subject: [PATCH] Simpler v5 session expiry in tests. --- test/broker/03-publish-b2c-disconnect-qos1.py | 7 +------ test/broker/03-publish-b2c-disconnect-qos2.py | 7 +------ test/broker/03-publish-c2b-disconnect-qos2.py | 6 +----- test/broker/07-will-qos0.py | 7 +------ test/broker/07-will-reconnect-1273.py | 7 +------ test/broker/11-message-expiry.py | 3 +-- test/broker/11-persistent-subscription-no-local.py | 3 +-- test/broker/11-persistent-subscription-v5.py | 3 +-- test/broker/11-subscription-id.py | 3 +-- test/mosq_test.py | 6 +++++- 10 files changed, 14 insertions(+), 38 deletions(-) diff --git a/test/broker/03-publish-b2c-disconnect-qos1.py b/test/broker/03-publish-b2c-disconnect-qos1.py index 8d5c556f..b513c59d 100755 --- a/test/broker/03-publish-b2c-disconnect-qos1.py +++ b/test/broker/03-publish-b2c-disconnect-qos1.py @@ -22,12 +22,7 @@ def do_test(proto_ver): rc = 1 mid = 3265 keepalive = 60 - if proto_ver == 5: - props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 60) - else: - props = None - - connect_packet = mosq_test.gen_connect("pub-qos1-disco-test", keepalive=keepalive, clean_session=False, proto_ver=proto_ver, properties=props) + connect_packet = mosq_test.gen_connect("pub-qos1-disco-test", keepalive=keepalive, clean_session=False, proto_ver=proto_ver, session_expiry=60) connack1_packet = mosq_test.gen_connack(flags=0, rc=0, proto_ver=proto_ver) connack2_packet = mosq_test.gen_connack(flags=1, rc=0, proto_ver=proto_ver) diff --git a/test/broker/03-publish-b2c-disconnect-qos2.py b/test/broker/03-publish-b2c-disconnect-qos2.py index a63e7099..3fbe9057 100755 --- a/test/broker/03-publish-b2c-disconnect-qos2.py +++ b/test/broker/03-publish-b2c-disconnect-qos2.py @@ -27,12 +27,7 @@ def do_test(proto_ver): rc = 1 mid = 3265 keepalive = 60 - if proto_ver == 5: - props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 60) - else: - props = None - - connect_packet = mosq_test.gen_connect("pub-qos2-disco-test", keepalive=keepalive, clean_session=False, proto_ver=proto_ver, properties=props) + connect_packet = mosq_test.gen_connect("pub-qos2-disco-test", keepalive=keepalive, clean_session=False, proto_ver=proto_ver, session_expiry=60) connack1_packet = mosq_test.gen_connack(flags=0, rc=0, proto_ver=proto_ver) connack2_packet = mosq_test.gen_connack(flags=1, rc=0, proto_ver=proto_ver) diff --git a/test/broker/03-publish-c2b-disconnect-qos2.py b/test/broker/03-publish-c2b-disconnect-qos2.py index 35e9f5a5..efe73b72 100755 --- a/test/broker/03-publish-c2b-disconnect-qos2.py +++ b/test/broker/03-publish-c2b-disconnect-qos2.py @@ -7,11 +7,7 @@ def do_test(proto_ver): rc = 1 mid = 3265 keepalive = 60 - if proto_ver == 5: - props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 60) - else: - props = None - connect_packet = mosq_test.gen_connect("pub-qos2-disco-test", keepalive=keepalive, clean_session=False, proto_ver=proto_ver, properties=props) + connect_packet = mosq_test.gen_connect("pub-qos2-disco-test", keepalive=keepalive, clean_session=False, proto_ver=proto_ver, session_expiry=60) connack1_packet = mosq_test.gen_connack(flags=0, rc=0, proto_ver=proto_ver) if proto_ver == 3: diff --git a/test/broker/07-will-qos0.py b/test/broker/07-will-qos0.py index bf284398..9d7e57f4 100755 --- a/test/broker/07-will-qos0.py +++ b/test/broker/07-will-qos0.py @@ -12,12 +12,7 @@ def do_test(proto_ver, clean_session): connect1_packet = mosq_test.gen_connect("will-qos0-test", keepalive=keepalive, proto_ver=proto_ver) connack1_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) - if proto_ver == 5: - props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 100) - else: - props = None - - connect2_packet = mosq_test.gen_connect("test-helper", keepalive=keepalive, will_topic="will/qos0/test", will_payload=b"will-message", clean_session=clean_session, proto_ver=proto_ver, properties=props) + connect2_packet = mosq_test.gen_connect("test-helper", keepalive=keepalive, will_topic="will/qos0/test", will_payload=b"will-message", clean_session=clean_session, proto_ver=proto_ver, session_expiry=60) connack2_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) subscribe_packet = mosq_test.gen_subscribe(mid, "will/qos0/test", 0, proto_ver=proto_ver) diff --git a/test/broker/07-will-reconnect-1273.py b/test/broker/07-will-reconnect-1273.py index bd8a5a5a..c2422a5e 100755 --- a/test/broker/07-will-reconnect-1273.py +++ b/test/broker/07-will-reconnect-1273.py @@ -18,12 +18,7 @@ def do_test(proto_ver): subscribe1_packet = mosq_test.gen_subscribe(mid, "will/test", 0, proto_ver=proto_ver) suback1_packet = mosq_test.gen_suback(mid, 0, proto_ver=proto_ver) - if proto_ver == 5: - props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 100) - else: - props = None - - connect2_packet = mosq_test.gen_connect("will-1273", keepalive=keepalive, will_topic="will/test", will_payload=b"will msg",clean_session=False, proto_ver=proto_ver, properties=props) + connect2_packet = mosq_test.gen_connect("will-1273", keepalive=keepalive, will_topic="will/test", will_payload=b"will msg",clean_session=False, proto_ver=proto_ver, session_expiry=60) connack2a_packet = mosq_test.gen_connack(rc=0, proto_ver=proto_ver) connack2b_packet = mosq_test.gen_connack(rc=0, flags=1, proto_ver=proto_ver) diff --git a/test/broker/11-message-expiry.py b/test/broker/11-message-expiry.py index 253b7ddb..a18d837a 100755 --- a/test/broker/11-message-expiry.py +++ b/test/broker/11-message-expiry.py @@ -24,8 +24,7 @@ write_config(conf_file, port) rc = 1 keepalive = 60 -props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 60) -connect_packet = mosq_test.gen_connect("subpub-qos0-test", keepalive=keepalive, proto_ver=5, clean_session=False, properties=props) +connect_packet = mosq_test.gen_connect("subpub-qos0-test", keepalive=keepalive, proto_ver=5, clean_session=False, session_expiry=60) connack1_packet = mosq_test.gen_connack(rc=0, proto_ver=5) connack2_packet = mosq_test.gen_connack(rc=0, proto_ver=5, flags=1) diff --git a/test/broker/11-persistent-subscription-no-local.py b/test/broker/11-persistent-subscription-no-local.py index 258c32e8..96b3e38f 100755 --- a/test/broker/11-persistent-subscription-no-local.py +++ b/test/broker/11-persistent-subscription-no-local.py @@ -17,9 +17,8 @@ write_config(conf_file, port) rc = 1 keepalive = 60 -props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 100) connect_packet = mosq_test.gen_connect( - "persistent-subscription-test", keepalive=keepalive, clean_session=False, proto_ver=5, properties=props + "persistent-subscription-test", keepalive=keepalive, clean_session=False, proto_ver=5, session_expiry=60 ) connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5) connack_packet2 = mosq_test.gen_connack(rc=0, flags=1, proto_ver=5) # session present diff --git a/test/broker/11-persistent-subscription-v5.py b/test/broker/11-persistent-subscription-v5.py index 777256db..d847ae19 100755 --- a/test/broker/11-persistent-subscription-v5.py +++ b/test/broker/11-persistent-subscription-v5.py @@ -18,9 +18,8 @@ rc = 1 mid = 530 keepalive = 60 -props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 100) connect_packet = mosq_test.gen_connect( - "persistent-subscription-test", keepalive=keepalive, clean_session=False, proto_ver=5, properties=props + "persistent-subscription-test", keepalive=keepalive, clean_session=False, proto_ver=5, session_expiry=60 ) connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5) connack_packet2 = mosq_test.gen_connack(rc=0, flags=1, proto_ver=5) # session present diff --git a/test/broker/11-subscription-id.py b/test/broker/11-subscription-id.py index 548cd288..327b2b75 100755 --- a/test/broker/11-subscription-id.py +++ b/test/broker/11-subscription-id.py @@ -17,9 +17,8 @@ write_config(conf_file, port) rc = 1 keepalive = 60 -props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 100) connect_packet = mosq_test.gen_connect( - "persistent-subscription-test", keepalive=keepalive, clean_session=False, proto_ver=5, properties=props + "persistent-subscription-test", keepalive=keepalive, clean_session=False, proto_ver=5, session_expiry=60 ) connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5) connack_packet2 = mosq_test.gen_connack(rc=0, flags=1, proto_ver=5) # session present diff --git a/test/mosq_test.py b/test/mosq_test.py index 1669f566..02e0e8db 100644 --- a/test/mosq_test.py +++ b/test/mosq_test.py @@ -316,7 +316,7 @@ def to_string(packet): (cmd, rl) = struct.unpack('!BB', packet) return "AUTH, rl="+str(rl) -def gen_connect(client_id, clean_session=True, keepalive=60, username=None, password=None, will_topic=None, will_qos=0, will_retain=False, will_payload=b"", proto_ver=4, connect_reserved=False, properties=b"", will_properties=b""): +def gen_connect(client_id, clean_session=True, keepalive=60, username=None, password=None, will_topic=None, will_qos=0, will_retain=False, will_payload=b"", proto_ver=4, connect_reserved=False, properties=b"", will_properties=b"", session_expiry=-1): if (proto_ver&0x7F) == 3 or proto_ver == 0: remaining_length = 12 elif (proto_ver&0x7F) == 4 or proto_ver == 5: @@ -341,6 +341,10 @@ def gen_connect(client_id, clean_session=True, keepalive=60, username=None, pass if proto_ver == 5: if properties == b"": properties += mqtt5_props.gen_uint16_prop(mqtt5_props.PROP_RECEIVE_MAXIMUM, 20) + + if session_expiry != -1: + properties += mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, session_expiry) + properties = mqtt5_props.prop_finalise(properties) remaining_length += len(properties)