Test: Start of big refactor

Add new MosquittoBroker class to remove test boilerplate.

This only handles non-config cases so far.
This commit is contained in:
Roger A. Light
2026-05-13 19:38:00 +01:00
parent e6e55d662c
commit 02f6f52fdc
105 changed files with 1027 additions and 2961 deletions
+7 -18
View File
@@ -9,7 +9,6 @@ def do_test():
num_connects = 1000
num_props = 5000
rc = 1
props = mqtt5_props.gen_string_pair_prop(mqtt5_props.USER_PROPERTY, "key", "value")
for i in range(0, num_props):
props += mqtt5_props.gen_string_pair_prop(mqtt5_props.USER_PROPERTY, "key", "value")
@@ -18,10 +17,9 @@ def do_test():
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker_info = ProcessInfo(broker.pid)
broker = MosquittoBroker(port=port)
with broker:
broker_info = ProcessInfo(broker._process.pid)
cpu_user_start = broker_info.cpu_times().user
for i in range(num_connects):
@@ -40,19 +38,10 @@ def do_test():
# 20 is chosen as a factor that works in plain mode and running under
# valgrind. The slow performance manifests as a factor of >100. Fast is <10.
if cpu_user_with_props / cpu_user_without_props < 20.0:
rc = 0
pass
else:
print(f"CPU usage ratio with/without properties is {cpu_user_with_props / cpu_user_without_props}")
except Exception:
traceback.print_stack(file=sys.stdout)
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
exit(rc)
raise ValueError(f"CPU usage ratio with/without properties is {cpu_user_with_props / cpu_user_without_props}")
do_test()
exit(0)
if __name__ == '__main__':
do_test()
+5 -21
View File
@@ -33,16 +33,13 @@ def disco_test(test, disconnect_packet):
rc -= 1
def do_test(start_broker):
def do_test():
global rc
rc = 4
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
# No reason code, no properties, len=0
disconnect_packet = mqtt_packets.gen_disconnect(proto_ver=5)
disco_test("disco len=0", disconnect_packet)
@@ -59,22 +56,9 @@ def do_test(start_broker):
props = mqtt5_props.gen_string_pair_prop(mqtt5_props.USER_PROPERTY, "key", "value")
disconnect_packet = mqtt_packets.gen_disconnect(proto_ver=5, reason_code=0, properties=props)
disco_test("disco len>2", disconnect_packet)
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
assert rc == 0
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+2 -17
View File
@@ -5,10 +5,8 @@
from mosq_test_helper import *
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
rc = 1
broker = MosquittoBroker(port=port)
with broker:
connect_packet = mqtt_packets.gen_connect("take-over", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
disconnect_packet = mqtt_packets.gen_disconnect(reason_code=mqtt5_rc.SESSION_TAKEN_OVER, proto_ver=5)
@@ -20,16 +18,3 @@ try:
sock2.close()
sock1.close()
rc = 0
except mosq_test.TestError:
pass
except Exception as e:
print(e)
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
exit(rc)
+4 -24
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
mid = 1
connect1_packet = mqtt_packets.gen_connect("02-shared-nolocal-client1", proto_ver=5)
@@ -15,31 +14,12 @@ def do_test(start_broker):
disconnect_packet = mqtt_packets.gen_disconnect(reason_code=mqtt5_rc.PROTOCOL_ERROR, proto_ver=5)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect1_packet, connack1_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, disconnect_packet, "disconnect")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+4 -22
View File
@@ -15,8 +15,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
mid = 1
connect1_packet = mqtt_packets.gen_connect("02-shared-client1", proto_ver=5)
@@ -77,10 +76,9 @@ def do_test(start_broker):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock1 = mosq_test.do_client_connect(connect1_packet, connack1_packet, timeout=20, port=port)
sock2 = mosq_test.do_client_connect(connect2_packet, connack2_packet, timeout=20, port=port)
sock3 = mosq_test.do_client_connect(connect3_packet, connack3_packet, timeout=20, port=port)
@@ -115,28 +113,12 @@ def do_test(start_broker):
mosq_test.do_send_receive(sock4, unsubscribe4_packet, unsuback4_packet, "unsuback4")
mosq_test.do_send_receive(sock5, unsubscribe5_packet, unsuback5_packet, "unsuback5")
rc = 0
sock1.close()
sock2.close()
sock3.close()
sock4.close()
sock5.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+4 -26
View File
@@ -25,41 +25,19 @@ def test(port):
mosq_test.do_send_receive(sock, subscribe1_packet, suback1_packet, "suback 1")
mosq_test.do_send_receive(sock, subscribe2_packet, suback2_packet, "suback 2")
mosq_test.do_send_receive(sock, unsubscribe1_packet, unsuback1_packet, "unsuback")
sock.send(disconnect_packet)
sock.close()
def do_test(start_broker=True):
rc = 1
def do_test():
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
test(port)
# Repeat test to check broker is still there
test(port)
rc = 0
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+4 -25
View File
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
props = mqtt5_props.gen_uint16_prop(mqtt5_props.TOPIC_ALIAS_MAXIMUM, 65535)
connect_packet = mqtt_packets.gen_connect("02-b2c-topic-alias", proto_ver=5, properties=props)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -18,10 +17,9 @@ def do_test(start_broker):
connack_packet_helper = mqtt_packets.gen_connack(rc=0, proto_ver=5)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port, nolog=True)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=5, port=port)
helper = mosq_test.do_client_connect(connect_packet_helper, connack_packet_helper, timeout=5, port=port)
@@ -70,27 +68,8 @@ def do_test(start_broker):
sock.send(publish_packet_s)
mosq_test.expect_packet(sock, "publish %db"%(i), publish_packet_r)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+23 -48
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, topic, succeeds):
rc = 1
def do_test(port, topic, succeeds):
mid = 53
connect_packet = mqtt_packets.gen_connect("02-subpub-qos0-long-topic")
connack_packet = mqtt_packets.gen_connack(rc=0)
@@ -15,53 +14,29 @@ def do_test(start_broker, topic, succeeds):
publish_packet = mqtt_packets.gen_publish(topic, qos=0, payload="message")
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
if succeeds:
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
mosq_test.do_send_receive(sock, publish_packet, publish_packet, "publish")
else:
try:
mosq_test.do_send_receive(sock, subscribe_packet, b"", "suback")
raise RuntimeError(topic)
except BrokenPipeError:
pass
sock.close()
def all_tests():
port = mosq_test.get_port()
broker = None
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
if succeeds:
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
mosq_test.do_send_receive(sock, publish_packet, publish_packet, "publish")
else:
try:
mosq_test.do_send_receive(sock, subscribe_packet, b"", "suback")
return 1
except BrokenPipeError:
pass
rc = 0
sock.close()
finally:
if broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
return rc
def all_tests(start_broker=False):
rc = do_test(start_broker, "/"*200, True) # 200 max hierarchy limit
if rc:
return rc
rc = do_test(start_broker, "abc/"*199+"d", True) # 200 max hierarchy limit, longer overall string than 200
if rc:
return rc
rc = do_test(start_broker, "/"*201, False) # Exceeds 200 max hierarchy limit
if rc:
return rc
rc = do_test(start_broker, "abc/"*201+"d", False) # Exceeds 200 max hierarchy limit, longer overall string than 200
if rc:
return rc
return 0
with broker:
do_test(port, "/"*200, True) # 200 max hierarchy limit
do_test(port, "abc/"*199+"d", True) # 200 max hierarchy limit, longer overall string than 200
do_test(port, "/"*201, False) # Exceeds 200 max hierarchy limit
do_test(port, "abc/"*201+"d", False) # Exceeds 200 max hierarchy limit, longer overall string than 200
if __name__ == '__main__':
sys.exit(all_tests(True))
all_tests()
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
connect_packet = mqtt_packets.gen_connect("02-subpub-qos0-rap", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -29,10 +28,9 @@ def do_test(start_broker):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe1_packet, suback1_packet, "suback1")
@@ -40,25 +38,9 @@ def do_test(start_broker):
mosq_test.do_send_receive(sock, publish1_packet, publish1r_packet, "publish1")
mosq_test.do_send_receive(sock, publish2_packet, publish2r_packet, "publish2")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+4 -22
View File
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
connect_packet = mqtt_packets.gen_connect("02-subpub-qos0-send-retain", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -36,10 +35,8 @@ def do_test(start_broker):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=5, port=port)
sock.send(publish1_packet)
@@ -66,22 +63,7 @@ def do_test(start_broker):
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+4 -23
View File
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
connect_packet = mqtt_packets.gen_connect("02-subpub-subid", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -67,10 +66,9 @@ def do_test(start_broker, proto_ver):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe1_packet, suback1_packet, "suback1")
@@ -90,25 +88,8 @@ def do_test(start_broker, proto_ver):
mosq_test.do_send_receive(sock, publish3_packet, publish3ru_packet, "publish3u")
mosq_test.do_send_receive(sock, publish1_packet, publish1ru_packet, "publish1u")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=5)
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
connect_packet = mqtt_packets.gen_connect("02-subpub-alias-unknown", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -16,33 +15,16 @@ def do_test(start_broker):
disconnect_packet = mqtt_packets.gen_disconnect(reason_code=mqtt5_rc.PROTOCOL_ERROR, proto_ver=5)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=5, port=port)
sock.send(publish1_packet)
mosq_test.expect_packet(sock, "disconnect", disconnect_packet)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+4 -21
View File
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
connect1_packet = mqtt_packets.gen_connect("02-subpub-qos0-topic-alias", proto_ver=5)
connack1_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -26,10 +25,9 @@ def do_test(start_broker):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock1 = mosq_test.do_client_connect(connect1_packet, connack1_packet, timeout=5, port=port)
sock2 = mosq_test.do_client_connect(connect2_packet, connack2_packet, timeout=5, port=port)
@@ -40,26 +38,11 @@ def do_test(start_broker):
sock1.send(publish2s_packet)
mosq_test.expect_packet(sock2, "publish2r", publish2r_packet)
rc = 0
sock1.close()
sock2.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
@@ -14,7 +14,6 @@
from mosq_test_helper import *
def do_test(proto_ver):
rc = 1
keepalive = 60
connect_packet = mqtt_packets.gen_connect("subpub", keepalive=keepalive, proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -45,9 +44,9 @@ def do_test(proto_ver):
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
helper = mosq_test.do_client_connect(helper_connect, helper_connack, timeout=20, port=port)
mosq_test.do_send_receive(helper, publish1_packet, puback1_packet, "puback 1")
mosq_test.do_send_receive(helper, publish2s_packet, puback2s_packet, "puback 2")
@@ -73,19 +72,6 @@ def do_test(proto_ver):
mosq_test.expect_packet(sock, "publish 2", publish2r_packet)
sock.send(puback2r_packet)
sock.close()
rc = 0
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
exit(rc)
do_test(proto_ver=5)
@@ -12,7 +12,6 @@
from mosq_test_helper import *
def do_test(proto_ver):
rc = 1
mid = 53
keepalive = 60
props = mqtt5_props.gen_uint32_prop(mqtt5_props.SESSION_EXPIRY_INTERVAL, 60)
@@ -35,9 +34,9 @@ def do_test(proto_ver):
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack1_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
sock.close()
@@ -56,17 +55,7 @@ def do_test(proto_ver):
break
sock.close()
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
exit(rc)
assert rc == 0
do_test(proto_ver=5)
+3 -14
View File
@@ -40,9 +40,9 @@ def do_test(proto_ver):
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack1_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
sock.close()
@@ -63,18 +63,7 @@ def do_test(proto_ver):
break
sock.close()
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
exit(rc)
assert rc == 0
do_test(proto_ver=5)
exit(0)
+4 -21
View File
@@ -6,8 +6,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
connect_packet = mqtt_packets.gen_connect("02-subpub-qos1-nolocal", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -32,10 +31,9 @@ def do_test(start_broker):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -45,25 +43,10 @@ def do_test(start_broker):
sock.send(publish2_packet)
mosq_test.receive_unordered(sock, puback2_packet, publish3_packet, "puback2/publish3")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+12 -35
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(port, proto_ver):
mid = 530
connect_packet = mqtt_packets.gen_connect("subpub-qos1-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -20,39 +19,17 @@ def do_test(start_broker, proto_ver):
mid = 1
publish_packet2 = mqtt_packets.gen_publish("subpub/qos1", qos=1, mid=mid, payload="message", proto_ver=proto_ver)
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
sock.send(publish_packet)
mosq_test.receive_unordered(sock, puback_packet, publish_packet2, "puback/publish2")
sock.close()
port = mosq_test.get_port()
if start_broker:
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)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
sock.send(publish_packet)
mosq_test.receive_unordered(sock, puback_packet, publish_packet2, "puback/publish2")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
port = mosq_test.get_port()
broker = MosquittoBroker(port=port)
with broker:
do_test(port, proto_ver=4)
do_test(port, proto_ver=5)
+5 -24
View File
@@ -36,7 +36,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
def do_test(proto_ver):
rc = 1
pub_connect_packet = mqtt_packets.gen_connect("02-subpub-qos2-1322-pub", clean_session=False, proto_ver=proto_ver, session_expiry=60)
pub_connack1_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -76,10 +76,9 @@ def do_test(start_broker, proto_ver):
publish5r_packet = mqtt_packets.gen_publish("02/subpub/qos2/1322/topic1", qos=0, payload="message5", proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sub1 = mosq_test.do_client_connect(sub1_connect_packet, sub1_connack_packet, timeout=10, port=port)
mosq_test.do_send_receive(sub1, subscribe1_packet, suback1_packet, "suback1")
@@ -124,32 +123,14 @@ def do_test(start_broker, proto_ver):
mosq_test.do_ping(sub2, error_string="pingresp2")
mosq_test.expect_packet(sub1, "publish5", publish5r_packet)
rc = 0
sub2.close()
sub1.close()
# Clear session
pub = mosq_test.do_client_connect(pub_connect_packet_clear, pub_connack1_packet, timeout=10, port=port)
pub.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)
+2 -16
View File
@@ -31,7 +31,6 @@ def helper(port):
def do_test(proto_ver):
rc = 1
keepalive = 60
connect_packet = mqtt_packets.gen_connect("pub-qo2-timeout-test", keepalive=keepalive, proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -51,9 +50,9 @@ def do_test(proto_ver):
pubcomp_2_packet = mqtt_packets.gen_pubcomp(mid, proto_ver=proto_ver)
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -66,20 +65,7 @@ def do_test(proto_ver):
mosq_test.expect_packet(sock, "publish 2", publish_2_packet)
mosq_test.do_send_receive(sock, pubrec_2_packet, pubrel_2_packet, "pubrel 2")
sock.send(pubcomp_2_packet)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
exit(rc)
do_test(proto_ver=5)
@@ -6,7 +6,6 @@
from mosq_test_helper import *
def helper(port):
rc = 1
connect_packet = mqtt_packets.gen_connect("subpub-qos2-recv-max1-helper", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -42,8 +41,7 @@ def helper(port):
sock.close()
def do_test(start_broker):
rc = 1
def do_test():
props = mqtt5_props.gen_uint16_prop(mqtt5_props.RECEIVE_MAXIMUM, 1)
connect_packet = mqtt_packets.gen_connect("subpub-qos2-receive-max1", proto_ver=5, properties=props)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -72,10 +70,9 @@ def do_test(start_broker):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -93,26 +90,8 @@ def do_test(start_broker):
mosq_test.expect_packet(sock, "publish3", publish_packet3)
mosq_test.do_send_receive(sock, pubrec_packet3, pubrel_packet3, "pubrel3")
sock.send(pubcomp_packet3)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
@@ -42,7 +42,7 @@ def helper(port):
sock.close()
def do_test(start_broker, proto_ver):
def do_test(proto_ver):
if proto_ver == 4:
exit(0)
@@ -75,10 +75,9 @@ def do_test(start_broker, proto_ver):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -96,27 +95,8 @@ def do_test(start_broker, proto_ver):
mosq_test.do_send_receive(sock, pubrec_packet3, pubrel_packet3, "pubrel3")
sock.send(pubcomp_packet3)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=5)
+15 -41
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(port, proto_ver):
mid = 530
connect_packet = mqtt_packets.gen_connect("subpub-qos2-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -25,45 +24,20 @@ def do_test(start_broker, proto_ver):
pubrel_packet2 = mqtt_packets.gen_pubrel(mid, proto_ver=proto_ver)
pubcomp_packet2 = mqtt_packets.gen_pubcomp(mid, proto_ver=proto_ver)
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
mosq_test.do_send_receive(sock, publish_packet, pubrec_packet, "pubrec")
sock.send(pubrel_packet)
mosq_test.receive_unordered(sock, pubcomp_packet, publish_packet2, "pubcomp/publish2")
mosq_test.do_send_receive(sock, pubrec_packet2, pubrel_packet2, "pubrel2")
sock.send(pubcomp_packet2)
# Broker side of flow complete so can quit here.
sock.close()
port = mosq_test.get_port()
if start_broker:
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)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
mosq_test.do_send_receive(sock, publish_packet, pubrec_packet, "pubrec")
sock.send(pubrel_packet)
mosq_test.receive_unordered(sock, pubcomp_packet, publish_packet2, "pubcomp/publish2")
mosq_test.do_send_receive(sock, pubrec_packet2, pubrel_packet2, "pubrel2")
sock.send(pubcomp_packet2)
# Broker side of flow complete so can quit here.
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
exit(0)
if __name__ == '__main__':
all_tests(True)
port = mosq_test.get_port()
broker = MosquittoBroker(port=port)
with broker:
do_test(port, proto_ver=4)
do_test(port, proto_ver=5)
+5 -23
View File
@@ -16,7 +16,6 @@ def publish_helper(port):
def do_test(proto_ver):
rc = 1
if proto_ver == 5:
props = mqtt5_props.gen_uint32_prop(mqtt5_props.SESSION_EXPIRY_INTERVAL, 60)
connect_packet = mqtt_packets.gen_connect("subpub-sub-test", proto_ver=proto_ver, clean_session=False, properties=props)
@@ -37,9 +36,9 @@ def do_test(proto_ver):
publish2_packet = mqtt_packets.gen_publish("shared/sub", qos=0, payload="message2", proto_ver=proto_ver)
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack1_packet, timeout=2, port=port, connack_error="connack 1")
mosq_test.do_send_receive(sock, subscribe1_packet, suback1_packet, "suback1")
@@ -60,23 +59,6 @@ def do_test(proto_ver):
mosq_test.expect_packet(sock, "publish2", publish2_packet)
sock.close()
rc = 0
sock.close()
except mosq_test.TestError:
pass
except Exception as err:
print(err)
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
exit(rc)
do_test(proto_ver=4)
do_test(proto_ver=5)
exit(0)
if __name__ == '__main__':
do_test(proto_ver=4)
do_test(proto_ver=5)
+10 -32
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(port, proto_ver):
connect_packet = mqtt_packets.gen_connect("subscribe-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -17,36 +16,15 @@ def do_test(start_broker, proto_ver):
subscribe2_packet = mqtt_packets.gen_subscribe(mid, "$share/share/#", 0, proto_ver=proto_ver)
suback2_packet = mqtt_packets.gen_suback(mid, 0, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, subscribe1_packet, suback1_packet, "suback1")
mosq_test.do_send_receive(sock, subscribe2_packet, suback2_packet, "suback2")
sock.close()
try:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, subscribe1_packet, suback1_packet, "suback1")
mosq_test.do_send_receive(sock, subscribe2_packet, suback2_packet, "suback2")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
exit(0)
if __name__ == '__main__':
all_tests(True)
port = mosq_test.get_port()
broker = MosquittoBroker(port=port)
with broker:
do_test(port, proto_ver=4)
do_test(port, proto_ver=5)
+16 -38
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(port, proto_ver):
mid = 53
connect_packet = mqtt_packets.gen_connect("subscribe-invalid-utf8", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -15,44 +14,23 @@ def do_test(start_broker, proto_ver):
b[13] = 0 # Topic should never have a 0x0000
subscribe_packet = struct.pack("B"*len(b), *b)
port = mosq_test.get_port()
broker = None
if start_broker:
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)
if proto_ver == 4:
try:
mosq_test.do_send_receive(sock, subscribe_packet, b"", "suback")
except BrokenPipeError:
rc = 0
else:
disconnect_packet = mqtt_packets.gen_disconnect(proto_ver=5, reason_code = mqtt5_rc.MALFORMED_PACKET)
mosq_test.do_send_receive(sock, subscribe_packet, disconnect_packet, "suback")
rc = 0
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
if proto_ver == 4:
try:
mosq_test.do_send_receive(sock, subscribe_packet, b"", "suback")
except BrokenPipeError:
pass
else:
disconnect_packet = mqtt_packets.gen_disconnect(proto_ver=5, reason_code = mqtt5_rc.MALFORMED_PACKET)
mosq_test.do_send_receive(sock, subscribe_packet, disconnect_packet, "suback")
sock.close()
finally:
if broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
return rc
sock.close()
def all_tests(start_broker=False):
rc = do_test(start_broker, proto_ver=4)
if rc:
return rc
rc = do_test(start_broker, proto_ver=5)
if rc:
return rc
return 0
if __name__ == '__main__':
sys.exit(all_tests(True))
port = mosq_test.get_port()
broker = MosquittoBroker(port=port)
with broker:
do_test(port, proto_ver=4)
do_test(port, proto_ver=5)
+16 -39
View File
@@ -6,52 +6,29 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(port, proto_ver):
mid = 1
connect_packet = mqtt_packets.gen_connect("subscribe-long-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
subscribe_packet = mqtt_packets.gen_subscribe(mid, "/"*65535, 0, proto_ver=proto_ver)
port = mosq_test.get_port()
broker = None
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
if proto_ver == 4:
try:
mosq_test.do_send_receive(sock, subscribe_packet, b"", "suback")
except BrokenPipeError:
pass
else:
disconnect_packet = mqtt_packets.gen_disconnect(proto_ver=5, reason_code = mqtt5_rc.MALFORMED_PACKET)
mosq_test.do_send_receive(sock, subscribe_packet, disconnect_packet, "suback")
try:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
if proto_ver == 4:
try:
mosq_test.do_send_receive(sock, subscribe_packet, b"", "suback")
except BrokenPipeError:
rc = 0
else:
disconnect_packet = mqtt_packets.gen_disconnect(proto_ver=5, reason_code = mqtt5_rc.MALFORMED_PACKET)
mosq_test.do_send_receive(sock, subscribe_packet, disconnect_packet, "suback")
rc = 0
sock.close()
sock.close()
finally:
if broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
return rc
def all_tests(start_broker=False):
rc = do_test(start_broker, proto_ver=4)
if rc:
return rc
rc = do_test(start_broker, proto_ver=5)
if rc:
return rc
return 0
if __name__ == '__main__':
sys.exit(all_tests(True))
port = mosq_test.get_port()
broker = MosquittoBroker(port=port)
with broker:
do_test(port, proto_ver=4)
do_test(port, proto_ver=5)
@@ -24,8 +24,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
connect_packet_sub_persistent = mqtt_packets.gen_connect("flipflop-test", clean_session=False, proto_ver=proto_ver)
connect_packet_sub_clean = mqtt_packets.gen_connect("flipflop-test", clean_session=True, proto_ver=proto_ver)
connack_packet_sub = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -43,10 +42,9 @@ def do_test(start_broker, proto_ver):
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
# mosquitto_sub -i sub -t 'topic' -q 1 -d -c
sub_sock = mosq_test.do_client_connect(connect_packet_sub_persistent, connack_packet_sub, port=port)
mosq_test.do_send_receive(sub_sock, subscribe_packet, suback_packet, "subscribe persistent 1")
@@ -70,31 +68,12 @@ def do_test(start_broker, proto_ver):
mosq_test.do_send_receive(pub_sock, publish_packet, puback_packet, "publish")
mosq_test.expect_packet(sub_sock, "publish receive", publish_packet)
rc = 0
sub_sock.close()
sub_sock = mosq_test.do_client_connect(connect_packet_sub_clean, connack_packet_sub, port=port)
sub_sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
exit(0)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)
+2 -19
View File
@@ -14,7 +14,6 @@ def helper(port, pub_topic):
def pattern_test(sub_topic, pub_topic):
rc = 1
connect_packet = mqtt_packets.gen_connect("pattern-sub-test")
connack_packet = mqtt_packets.gen_connack(rc=0)
@@ -30,9 +29,9 @@ def pattern_test(sub_topic, pub_topic):
unsuback_packet = mqtt_packets.gen_unsuback(mid)
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=20, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -42,21 +41,8 @@ def pattern_test(sub_topic, pub_topic):
mosq_test.do_send_receive(sock, unsubscribe_packet, unsuback_packet, "unsuback")
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
mosq_test.expect_packet(sock, "publish retained", publish_retained_packet)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
sys.exit(rc)
return rc
pattern_test("#", "test/topic")
pattern_test("#", "/test/topic")
@@ -82,6 +68,3 @@ pattern_test("foo/+/baz/#", "foo//baz/bar")
pattern_test("foo//baz/#", "foo//baz/bar")
pattern_test("foo/foo/baz/#", "foo/foo/baz/bar")
pattern_test("/#", "////foo///bar")
exit(0)
+5 -26
View File
@@ -16,7 +16,7 @@ def helper(port):
sock.close()
def do_test(start_broker, proto_ver):
def do_test(proto_ver):
port = mosq_test.get_port()
rc = 1
@@ -38,10 +38,8 @@ def do_test(start_broker, proto_ver):
publish2_packet = mqtt_packets.gen_publish("03/b2c/qos1/outgoing", qos=1, mid=mid, payload="outgoing-message", proto_ver=proto_ver)
puback2_packet = mqtt_packets.gen_puback(mid, proto_ver=proto_ver)
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack1_packet, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -58,32 +56,13 @@ def do_test(start_broker, proto_ver):
sock = mosq_test.do_client_connect(connect_packet, connack2_packet, port=port)
mosq_test.expect_packet(sock, "dup publish", publish_dup_packet)
sock.send(puback_packet)
rc = 0
sock.close()
# clear session
sock = mosq_test.do_client_connect(connect_packet_clear, connack1_packet, port=port)
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
exit(0)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)
+5 -26
View File
@@ -23,8 +23,7 @@ def helper(port):
sock.close()
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
mid = 3265
connect_packet = mqtt_packets.gen_connect("03-b2c-disco-qos2-test", clean_session=False, proto_ver=proto_ver, session_expiry=60)
connack1_packet = mqtt_packets.gen_connack(flags=0, rc=0, proto_ver=proto_ver)
@@ -46,10 +45,8 @@ def do_test(start_broker, proto_ver):
puback2_packet = mqtt_packets.gen_puback(mid, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack1_packet, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -72,31 +69,13 @@ def do_test(start_broker, proto_ver):
sock = mosq_test.do_client_connect(connect_packet, connack2_packet, port=port)
mosq_test.expect_packet(sock, "dup pubrel", pubrel_packet)
sock.send(pubcomp_packet)
rc = 0
sock.close()
# Clear session
sock = mosq_test.do_client_connect(connect_packet_clear, connack1_packet, port=port)
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
exit(0)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)
+8 -31
View File
@@ -16,8 +16,7 @@ def helper(port):
sock.close()
def do_test(start_broker, test, puback_packet):
rc = 1
def do_test(test, puback_packet):
mid = 3265
connect_packet = mqtt_packets.gen_connect("03-b2c-qos1-len", clean_session=False, proto_ver=5)
connack_packet = mqtt_packets.gen_connack(flags=0, rc=0, proto_ver=5)
@@ -29,10 +28,8 @@ def do_test(start_broker, test, puback_packet):
publish_packet = mqtt_packets.gen_publish("03/b2c/qos1/len/test", qos=1, mid=mid, payload="len-message", proto_ver=5)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -44,43 +41,23 @@ def do_test(start_broker, test, puback_packet):
sock.send(puback_packet)
mosq_test.do_ping(sock)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print(test)
if rc:
exit(rc)
def all_tests(start_broker=False):
if __name__ == '__main__':
# No reason code, no properties
puback_packet = mqtt_packets.gen_puback(1)
do_test(start_broker, "qos1 len 2", puback_packet)
do_test("qos1 len 2", puback_packet)
# Reason code, no properties
puback_packet = mqtt_packets.gen_puback(1, proto_ver=5, reason_code=0x00)
do_test(start_broker, "qos1 len 3", puback_packet)
do_test("qos1 len 3", puback_packet)
# Reason code, empty properties
puback_packet = mqtt_packets.gen_puback(1, proto_ver=5, reason_code=0x00, properties="")
do_test(start_broker, "qos1 len 4", puback_packet)
do_test("qos1 len 4", puback_packet)
# Reason code, one property
props = mqtt5_props.gen_string_pair_prop(mqtt5_props.USER_PROPERTY, "key", "value")
puback_packet = mqtt_packets.gen_puback(1, proto_ver=5, reason_code=0x00, properties=props)
do_test(start_broker, "qos1 len >5", puback_packet)
if __name__ == '__main__':
all_tests(True)
do_test("qos1 len >5", puback_packet)
+8 -28
View File
@@ -22,8 +22,7 @@ def helper(port):
sock.close()
def do_test(start_broker, test, pubrec_packet, pubcomp_packet):
rc = 1
def do_test(test, pubrec_packet, pubcomp_packet):
mid = 3265
connect_packet = mqtt_packets.gen_connect("03-b2c-qos2-len-test", clean_session=False, proto_ver=5)
connack_packet = mqtt_packets.gen_connack(flags=0, rc=0, proto_ver=5)
@@ -36,10 +35,9 @@ def do_test(start_broker, test, pubrec_packet, pubcomp_packet):
pubrel_packet = mqtt_packets.gen_pubrel(mid)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
@@ -52,46 +50,28 @@ def do_test(start_broker, test, pubrec_packet, pubcomp_packet):
sock.send(pubcomp_packet)
mosq_test.do_ping(sock)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print(test)
if rc:
exit(rc)
def all_tests(start_broker=False):
if __name__ == '__main__':
# No reason code, no properties
pubrec_packet = mqtt_packets.gen_pubrec(1)
pubcomp_packet = mqtt_packets.gen_pubcomp(1)
do_test(start_broker, "qos2 len 2", pubrec_packet, pubcomp_packet)
do_test("qos2 len 2", pubrec_packet, pubcomp_packet)
# Reason code, no properties
pubrec_packet = mqtt_packets.gen_pubrec(1, proto_ver=5, reason_code=0x00)
pubcomp_packet = mqtt_packets.gen_pubcomp(1, proto_ver=5, reason_code=0x00)
do_test(start_broker, "qos2 len 3", pubrec_packet, pubcomp_packet)
do_test("qos2 len 3", pubrec_packet, pubcomp_packet)
# Reason code, empty properties
pubrec_packet = mqtt_packets.gen_pubrec(1, proto_ver=5, reason_code=0x00, properties="")
pubcomp_packet = mqtt_packets.gen_pubcomp(1, proto_ver=5, reason_code=0x00, properties="")
do_test(start_broker, "qos2 len 4", pubrec_packet, pubcomp_packet)
do_test("qos2 len 4", pubrec_packet, pubcomp_packet)
# Reason code, one property
props = mqtt5_props.gen_string_pair_prop(mqtt5_props.USER_PROPERTY, "key", "value")
pubrec_packet = mqtt_packets.gen_pubrec(1, proto_ver=5, reason_code=0x00, properties=props)
props = mqtt5_props.gen_string_pair_prop(mqtt5_props.USER_PROPERTY, "key", "value")
pubcomp_packet = mqtt_packets.gen_pubcomp(1, proto_ver=5, reason_code=0x00, properties=props)
do_test(start_broker, "qos2 len >5", pubrec_packet, pubcomp_packet)
if __name__ == '__main__':
all_tests(True)
do_test("qos2 len >5", pubrec_packet, pubcomp_packet)
+6 -27
View File
@@ -3,8 +3,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
mid = 3265
connect_packet = mqtt_packets.gen_connect("03-c2b-qos2-disco-test", clean_session=False, proto_ver=proto_ver, session_expiry=60)
connack1_packet = mqtt_packets.gen_connack(flags=0, rc=0, proto_ver=proto_ver)
@@ -32,10 +31,9 @@ def do_test(start_broker, proto_ver):
pubcomp_packet = mqtt_packets.gen_pubcomp(mid, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
# Add a subscriber, so we ensure that the QoS 2 flow must be completed
helper = mosq_test.do_client_connect(helper_connect_packet, helper_connack_packet, port=port)
mosq_test.do_send_receive(helper, subscribe_packet, suback_packet)
@@ -58,34 +56,15 @@ def do_test(start_broker, proto_ver):
sock = mosq_test.do_client_connect(connect_packet, connack2_packet, port=port)
mosq_test.do_send_receive(sock, pubrel_dup_packet, pubcomp_packet, "pubcomp")
rc = 0
sock.close()
helper.close()
# Clear session
sock = mosq_test.do_client_connect(connect_packet_clear, connack1_packet, port=port, connack_error="connack clear")
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=3)
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=3)
do_test(proto_ver=4)
do_test(proto_ver=5)
+8 -28
View File
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker, test, pubrel_packet):
rc = 1
def do_test(test, pubrel_packet):
mid = 3265
connect_packet = mqtt_packets.gen_connect("03-c2b-qos2-len", clean_session=False, proto_ver=5)
connack_packet = mqtt_packets.gen_connack(flags=0, rc=0, proto_ver=5)
@@ -17,51 +16,32 @@ def do_test(start_broker, test, pubrel_packet):
pubcomp_packet = mqtt_packets.gen_pubcomp(mid)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, publish_packet, pubrec_packet, "pubrec")
mosq_test.do_send_receive(sock, pubrel_packet, pubcomp_packet, "pubcomp")
mosq_test.do_ping(sock)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print(test)
if rc:
exit(rc)
def all_tests(start_broker=False):
if __name__ == '__main__':
# No reason code, no properties
pubrel_packet = mqtt_packets.gen_pubrel(1)
do_test(start_broker, "qos2 len 2", pubrel_packet)
do_test("qos2 len 2", pubrel_packet)
# Reason code, no properties
pubrel_packet = mqtt_packets.gen_pubrel(1, proto_ver=5, reason_code=0x00)
do_test(start_broker, "qos2 len 3", pubrel_packet)
do_test("qos2 len 3", pubrel_packet)
# Reason code, empty properties
pubrel_packet = mqtt_packets.gen_pubrel(1, proto_ver=5, reason_code=0x00, properties="")
do_test(start_broker, "qos2 len 4", pubrel_packet)
do_test("qos2 len 4", pubrel_packet)
# Reason code, one property
props = mqtt5_props.gen_string_pair_prop(mqtt5_props.USER_PROPERTY, "key", "value")
pubrel_packet = mqtt_packets.gen_pubrel(1, proto_ver=5, reason_code=0x00, properties=props)
do_test(start_broker, "qos2 len >5", pubrel_packet)
if __name__ == '__main__':
all_tests(True)
do_test("qos2 len >5", pubrel_packet)
+4 -24
View File
@@ -22,36 +22,16 @@ def helper(port, topic, reason_code):
mid += 1
def do_test(start_broker):
rc = 1
def do_test():
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
helper(port, "$SYS/broker/uptime", mqtt5_rc.NOT_AUTHORIZED)
helper(port, "$SYS/broker/connection/me", mqtt5_rc.NOT_AUTHORIZED)
helper(port, "$SYS/broker/connection/me/state", mqtt5_rc.NO_MATCHING_SUBSCRIBERS)
helper(port, "$share/share/03/publish/dollar/v5/topic", mqtt5_rc.NOT_AUTHORIZED)
rc = 0
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+4 -25
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
mid = 19
connect_packet = mqtt_packets.gen_connect("pub-dollar-test")
connack_packet = mqtt_packets.gen_connack(rc=0)
@@ -14,32 +13,12 @@ def do_test(start_broker):
puback_packet = mqtt_packets.gen_puback(mid)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
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()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+6 -26
View File
@@ -4,7 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
def do_test(proto_ver):
rc = 1
mid = 53
connect_packet = mqtt_packets.gen_connect("03-publish-invalid-utf8", proto_ver=proto_ver)
@@ -16,11 +16,8 @@ def do_test(start_broker, proto_ver):
publish_packet = struct.pack("B"*len(b), *b)
port = mosq_test.get_port()
broker = None
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
if proto_ver == 4:
try:
@@ -33,26 +30,9 @@ def do_test(start_broker, proto_ver):
rc = 0
sock.close()
finally:
if broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
return rc
assert rc == 0
def all_tests(start_broker=False):
rc = do_test(start_broker, proto_ver=4)
if rc:
return rc
rc = do_test(start_broker, proto_ver=5)
if rc:
return rc
return 0
if __name__ == '__main__':
sys.exit(all_tests(True))
do_test(proto_ver=4)
do_test(proto_ver=5)
+6 -25
View File
@@ -7,7 +7,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
def do_test(proto_ver):
rc = 1
mid = 19
connect_packet = mqtt_packets.gen_connect("03-pub-long-test", proto_ver=proto_ver)
@@ -16,11 +16,9 @@ def do_test(start_broker, proto_ver):
publish_packet = mqtt_packets.gen_publish("/"*65535, qos=1, mid=mid, payload="message", proto_ver=proto_ver)
port = mosq_test.get_port()
broker = None
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
if proto_ver == 4:
try:
@@ -33,26 +31,9 @@ def do_test(start_broker, proto_ver):
rc = 0
sock.close()
finally:
if broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
return rc
assert rc == 0
def all_tests(start_broker=False):
rc = do_test(start_broker, proto_ver=4)
if rc:
return rc
rc = do_test(start_broker, proto_ver=5)
if rc:
return rc
return 0
if __name__ == '__main__':
sys.exit(all_tests(True))
do_test(proto_ver=4)
do_test(proto_ver=5)
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker):
rc = 1
def do_test():
connect_packet = mqtt_packets.gen_connect("03-pub-qos1-no-subs", proto_ver=5)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=5)
@@ -39,10 +38,8 @@ def do_test(start_broker):
puback3b_packet = mqtt_packets.gen_puback(mid, proto_ver=5, reason_code=mqtt5_rc.NO_MATCHING_SUBSCRIBERS)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
# None of the pub/qos1/test topic tree exists here
@@ -57,25 +54,8 @@ def do_test(start_broker):
mosq_test.do_send_receive(sock, publish1b_packet, puback1b_packet, "puback1b")
mosq_test.do_send_receive(sock, publish2b_packet, puback2b_packet, "puback2b")
mosq_test.do_send_receive(sock, publish3b_packet, puback3b_packet, "puback3b")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
exit(rc)
def all_tests(start_broker=False):
return do_test(start_broker)
if __name__ == '__main__':
all_tests(True)
do_test()
+1 -1
View File
@@ -32,7 +32,7 @@ def registerOfflineSubscriber():
client.disconnect()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
class BrokerMonitor(threading.Thread):
def __init__(self, group=None, target=None, name=None, args=(), kwargs=None, verbose=None):
+5 -28
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
mid = 19
connect_packet = mqtt_packets.gen_connect("03-pub-qos1-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -17,35 +16,13 @@ def do_test(start_broker, proto_ver):
puback_packet = mqtt_packets.gen_puback(mid, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
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()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)
+5 -27
View File
@@ -3,7 +3,6 @@
from mosq_test_helper import *
def do_test(proto_ver):
rc = 1
connect_packet = mqtt_packets.gen_connect("03-pub-qos2-dup-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -14,44 +13,23 @@ def do_test(proto_ver):
disconnect_packet = mqtt_packets.gen_disconnect(reason_code=130, proto_ver=proto_ver)
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, publish_packet, pubrec_packet, "pubrec 1")
mosq_test.do_send_receive(sock, publish_packet, pubrec_packet, "pubrec 2")
if proto_ver == 5:
mosq_test.do_send_receive(sock, publish_packet, disconnect_packet, "disconnect")
rc = 0
else:
try:
mosq_test.do_send_receive(sock, publish_packet, b"", "disconnect1")
rc = 0
except BrokenPipeError:
rc = 0
pass
sock.close()
except Exception as e:
print(e)
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
broker.wait()
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
exit(rc)
def all_tests():
rc = do_test(proto_ver=4)
if rc:
return rc;
rc = do_test(proto_ver=5)
if rc:
return rc;
return 0
if __name__ == '__main__':
all_tests()
do_test(proto_ver=4)
do_test(proto_ver=5)
@@ -7,13 +7,12 @@ from mosq_test_helper import *
def do_test(proto_ver):
port = mosq_test.get_port()
rc = 1
connect_packet = mqtt_packets.gen_connect("pub-qos2-inflight-exceeded", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port, timeout=10)
for i in range(1, 21):
@@ -31,27 +30,9 @@ def do_test(proto_ver):
mosq_test.do_send_receive(sock, publish_packet, disconnect_packet, "disconnect")
except BrokenPipeError:
pass
rc = 0
sock.close()
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
return rc
def all_test():
rc = do_test(proto_ver=4)
if rc:
return rc
rc = do_test(proto_ver=5)
return rc
if __name__ == "__main__":
sys.exit(all_test())
do_test(proto_ver=4)
do_test(proto_ver=5)
+5 -21
View File
@@ -5,7 +5,6 @@
from mosq_test_helper import *
def do_test(proto_ver):
rc = 1
connect_packet = mqtt_packets.gen_connect("pub-qos2-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -27,9 +26,8 @@ def do_test(proto_ver):
publish_packet_expected = mqtt_packets.gen_publish("pub/qos2/reuse", qos=2, mid=mid, payload="message", proto_ver=proto_ver)
port = mosq_test.get_port()
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
ssock = mosq_test.do_client_connect(sub_connect_packet, sub_connack_packet, port=port)
mosq_test.do_send_receive(ssock, subscribe_packet, suback_packet, "suback")
@@ -39,23 +37,9 @@ def do_test(proto_ver):
mosq_test.do_send_receive(sock, pubrel_packet, pubcomp_packet, "pubcomp")
mosq_test.expect_packet(ssock, "publish", publish_packet_expected)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
exit(rc)
do_test(proto_ver=4)
do_test(proto_ver=5)
exit(0)
if __name__ == '__main__':
do_test(proto_ver=4)
do_test(proto_ver=5)
+11 -32
View File
@@ -4,8 +4,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(port, proto_ver):
connect_packet = mqtt_packets.gen_connect("03-pub-qos2-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -15,36 +14,16 @@ def do_test(start_broker, proto_ver):
pubrel_packet = mqtt_packets.gen_pubrel(mid, proto_ver=proto_ver)
pubcomp_packet = mqtt_packets.gen_pubcomp(mid, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, publish_packet, pubrec_packet, "pubrec")
mosq_test.do_send_receive(sock, pubrel_packet, pubcomp_packet, "pubcomp")
sock.close()
try:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, publish_packet, pubrec_packet, "pubrec")
mosq_test.do_send_receive(sock, pubrel_packet, pubcomp_packet, "pubcomp")
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
port = mosq_test.get_port()
broker = MosquittoBroker(port=port)
with broker:
do_test(port=port, proto_ver=4)
do_test(port=port, proto_ver=5)
+4 -16
View File
@@ -16,7 +16,6 @@ def send_retain(port, topic, payload):
sock.close()
def do_test():
rc = 1
connect_packet = mqtt_packets.gen_connect("retain-clear-test")
connack_packet = mqtt_packets.gen_connack(rc=0)
@@ -28,9 +27,8 @@ def do_test():
retain3_packet = mqtt_packets.gen_publish("1", 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:
broker = MosquittoBroker(port=port)
with broker:
send_retain(port, "1/2/3/4/5/6/7", "retained message")
send_retain(port, "1/2/3/4", "retained message")
send_retain(port, "1", "retained message")
@@ -64,16 +62,6 @@ def do_test():
mosq_test.do_ping(sock)
sock.close()
rc = 0
except mosq_test.TestError:
pass
finally:
mosq_test.terminate_broker(broker)
broker.wait()
if rc:
print(mosq_test.broker_log(broker))
exit(rc)
do_test()
exit(0)
if __name__ == '__main__':
do_test()
+5 -27
View File
@@ -6,8 +6,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
connect_packet = mqtt_packets.gen_connect("retain-qos0-clear-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -22,10 +21,8 @@ def do_test(start_broker, proto_ver):
unsuback_packet = mqtt_packets.gen_unsuback(mid_unsub, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
sock = mosq_test.do_client_connect(connect_packet, connack_packet, timeout=4, port=port)
# Send retained message
sock.send(publish_packet)
@@ -47,28 +44,9 @@ def do_test(start_broker, proto_ver):
# 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()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)
+5 -27
View File
@@ -5,8 +5,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
mid = 16
connect_packet = mqtt_packets.gen_connect("retain-qos0-fresh", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -18,36 +17,15 @@ def do_test(start_broker, proto_ver):
publish_packet_clear = mqtt_packets.gen_publish("retain/qos0/fresh", qos=0, payload=None, retain=True, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
broker = MosquittoBroker(port=port)
with broker:
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")
sock.send(publish_packet_clear)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)
+5 -25
View File
@@ -6,8 +6,7 @@
from mosq_test_helper import *
def do_test(start_broker, proto_ver):
rc = 1
def do_test(proto_ver):
mid = 16
connect_packet = mqtt_packets.gen_connect("retain-qos0-rep-test", proto_ver=proto_ver)
connack_packet = mqtt_packets.gen_connack(rc=0, proto_ver=proto_ver)
@@ -21,10 +20,9 @@ def do_test(start_broker, proto_ver):
unsuback_packet = mqtt_packets.gen_unsuback(unsub_mid, proto_ver=proto_ver)
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
broker = MosquittoBroker(port=port)
try:
with broker:
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")
@@ -34,27 +32,9 @@ def do_test(start_broker, proto_ver):
mosq_test.do_send_receive(sock, subscribe_packet, suback_packet, "suback")
mosq_test.expect_packet(sock, "publish", publish_packet)
rc = 0
sock.close()
except mosq_test.TestError:
pass
finally:
if start_broker:
mosq_test.terminate_broker(broker)
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
if rc:
print(mosq_test.broker_log(broker))
print("proto_ver=%d" % (proto_ver))
if rc:
exit(rc)
def all_tests(start_broker=False):
do_test(start_broker, proto_ver=4)
do_test(start_broker, proto_ver=5)
if __name__ == '__main__':
all_tests(True)
do_test(proto_ver=4)
do_test(proto_ver=5)

Some files were not shown because too many files have changed in this diff Show More