Remove duplicate tests.

pull/2345/merge
Roger A. Light 3 years ago
parent b6de597127
commit 99c49d3d39

@ -42,14 +42,6 @@ write_config(conf_file, port)
broker = mosq_test.start_broker(filename=os.path.basename(__file__), use_conf=True, port=port)
try:
# mid == 0
publish_packet = mosq_test.gen_publish(topic="test/topic", qos=1, mid=0, proto_ver=5)
do_test(publish_packet, mqtt5_rc.MQTT_RC_PROTOCOL_ERROR, "mid == 0")
# qos > 2
publish_packet = mosq_test.gen_publish(topic="test/topic", qos=3, mid=1, proto_ver=5)
do_test(publish_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "qos > 2")
# qos > maximum qos
publish_packet = mosq_test.gen_publish(topic="test/topic", qos=2, mid=1, proto_ver=5)
do_test(publish_packet, mqtt5_rc.MQTT_RC_QOS_NOT_SUPPORTED, "qos > maximum qos")
@ -57,35 +49,6 @@ try:
# retain not supported
publish_packet = mosq_test.gen_publish(topic="test/topic", qos=0, retain=True, proto_ver=5, payload="a")
do_test(publish_packet, mqtt5_rc.MQTT_RC_RETAIN_NOT_SUPPORTED, "retain not supported")
# Incorrect property
props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 0)
publish_packet = mosq_test.gen_publish(topic="test/topic", qos=1, mid=1, proto_ver=5, properties=props)
do_test(publish_packet, mqtt5_rc.MQTT_RC_PROTOCOL_ERROR, "Incorrect property")
# Truncated packet, remaining length only
publish_packet = struct.pack("!BB", 48, 0)
do_test(publish_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, remaining length only")
# Truncated packet, empty topic
publish_packet = struct.pack("!BBH", 48, 2, 0)
do_test(publish_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, empty topic")
# Truncated packet, with topic, no properties
publish_packet = struct.pack("!BBH1s", 48, 3, 1, b"a")
do_test(publish_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with topic, no properties")
# Truncated packet, with topic, no mid
publish_packet = struct.pack("!BBH1s", 48+2, 3, 1, b"a")
do_test(publish_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with topic, no mid")
# Truncated packet, with topic, with mid, no properties
publish_packet = struct.pack("!BBH1sH", 48+2, 5, 1, b"a", 1)
do_test(publish_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with topic, with mid, no properties")
# Bad topic
publish_packet = mosq_test.gen_publish(topic="#/test/topic", qos=1, mid=1, proto_ver=5)
do_test(publish_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Bad topic")
except mosq_test.TestError:
pass
finally:

@ -1,110 +0,0 @@
#!/usr/bin/env python3
# Test whether the broker handles malformed packets correctly - SUBSCRIBE
# MQTTv5
from mosq_test_helper import *
rc = 1
def do_test(subscribe_packet, reason_code, error_string, port):
global rc
rc = 1
connect_packet = mosq_test.gen_connect("13-malformed-subscribe-v5", proto_ver=5)
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)
mid = 0
disconnect_packet = mosq_test.gen_disconnect(proto_ver=5, reason_code=reason_code)
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, subscribe_packet, disconnect_packet, error_string=error_string)
rc = 0
def all_tests(start_broker=False):
global rc
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
# mid == 0
subscribe_packet = mosq_test.gen_subscribe(topic="13-malformed-subscribe/test/topic", qos=1, mid=0, proto_ver=5)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "mid == 0", port)
# qos > 2
subscribe_packet = mosq_test.gen_subscribe(topic="13-malformed-subscribe/test/topic", qos=3, mid=1, proto_ver=5)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "qos > 2", port)
# retain handling = 0x30
subscribe_packet = mosq_test.gen_subscribe(topic="13-malformed-subscribe/test/topic", qos=0x30, mid=1, proto_ver=5)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "retain handling = 0x30", port)
# subscription options = 0xC0
subscribe_packet = mosq_test.gen_subscribe(topic="13-malformed-subscribe/test/topic", qos=0xC0, mid=1, proto_ver=5)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "subscription options = 0xC0", port)
# command flags != 0x02
subscribe_packet = mosq_test.gen_subscribe(topic="13-malformed-subscribe/test/topic", qos=1, mid=1, proto_ver=5, cmd=128)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "command flags != 0x02", port)
# Incorrect property
props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 0)
subscribe_packet = mosq_test.gen_subscribe(topic="13-malformed-subscribe/test/topic", qos=1, mid=1, proto_ver=5, properties=props)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Incorrect property", port)
# Truncated packet, no mid
subscribe_packet = struct.pack("!BB", 130, 0)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, no mid", port)
# Truncated packet, no properties
subscribe_packet = struct.pack("!BBH", 130, 2, 1)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, no properties", port)
# Truncated packet, with properties field
subscribe_packet = struct.pack("!BBHB", 130, 3, 1, 0)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with properties field", port)
# Truncated packet, with properties field, empty topic
subscribe_packet = struct.pack("!BBHBH", 130, 5, 1, 0, 0)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with properties field, empty topic", port)
# Truncated packet, with properties field, empty topic, with qos
subscribe_packet = struct.pack("!BBHBHB", 130, 6, 1, 0, 0, 1)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with properties field, empty topic, with qos", port)
# Truncated packet, with properties field, with topic, no qos
subscribe_packet = struct.pack("!BBHBH1s", 130, 6, 1, 0, 1, b"a")
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with properties field, with topic, no qos", port)
# Truncated packet, with properties field, with 1st topic and qos ok, second topic ok, no second qos
subscribe_packet = struct.pack("!BBHHH1sBH1s", 130, 10, 1, 0, 1, b"a", 0, 1, b"b")
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with properties field, with 1st topic and qos ok, second topic ok, no second qos", port)
# Bad topic
subscribe_packet = mosq_test.gen_subscribe(topic="#/13-malformed-subscribe/test/topic", qos=1, mid=1, proto_ver=5)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Bad topic", port)
# Subscription ID set to 0
props = mqtt5_props.gen_varint_prop(mqtt5_props.PROP_SUBSCRIPTION_IDENTIFIER, 0)
subscribe_packet = mosq_test.gen_subscribe(topic="13-malformed-subscribe/test/topic", qos=1, mid=1, proto_ver=5, properties=props)
do_test(subscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Subscription ID set to 0", port)
except mosq_test.TestError:
pass
finally:
if start_broker:
broker.terminate()
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
(stdo, stde) = broker.communicate()
if rc:
print(stde.decode('utf-8'))
exit(rc)
else:
return rc
if __name__ == '__main__':
all_tests(True)

@ -1,83 +0,0 @@
#!/usr/bin/env python3
# Test whether the broker handles malformed packets correctly - UNSUBSCRIBE
# MQTTv5
from mosq_test_helper import *
rc = 1
def do_test(unsubscribe_packet, reason_code, error_string, port):
global rc
rc = 1
connect_packet = mosq_test.gen_connect("13-malformed-unsubscribe", proto_ver=5)
connack_packet = mosq_test.gen_connack(rc=0, proto_ver=5)
mid = 0
disconnect_packet = mosq_test.gen_disconnect(proto_ver=5, reason_code=reason_code)
sock = mosq_test.do_client_connect(connect_packet, connack_packet, port=port)
mosq_test.do_send_receive(sock, unsubscribe_packet, disconnect_packet, error_string=error_string)
rc = 0
def all_tests(start_broker=False):
global rc
port = mosq_test.get_port()
if start_broker:
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
# mid == 0
unsubscribe_packet = mosq_test.gen_unsubscribe(topic="13-malformed-unsubscribe/test/topic", mid=0, proto_ver=5)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "mid == 0", port)
# command flags != 0x02
unsubscribe_packet = mosq_test.gen_unsubscribe(topic="13-malformed-unsubscribe/test/topic", mid=1, proto_ver=5, cmd=160)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "command flags != 0x02", port)
# Incorrect property
props = mqtt5_props.gen_uint32_prop(mqtt5_props.PROP_SESSION_EXPIRY_INTERVAL, 0)
unsubscribe_packet = mosq_test.gen_unsubscribe(topic="13-malformed-unsubscribe/test/topic", mid=1, proto_ver=5, properties=props)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Incorrect property", port)
# Truncated packet, no mid
unsubscribe_packet = struct.pack("!BB", 162, 0)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, no mid", port)
# Truncated packet, no properties
unsubscribe_packet = struct.pack("!BBH", 162, 2, 1)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, no properties", port)
# Truncated packet, with properties field, no topic
unsubscribe_packet = struct.pack("!BBHH", 162, 4, 1, 0)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with properties field, no topic", port)
# Truncated packet, with properties field, empty topic
unsubscribe_packet = struct.pack("!BBHHH", 162, 5, 1, 0, 0)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Truncated packet, with properties field, empty topic", port)
# Bad topic
unsubscribe_packet = mosq_test.gen_unsubscribe(topic="#/13-malformed-unsubscribe/test/topic", mid=1, proto_ver=5)
do_test(unsubscribe_packet, mqtt5_rc.MQTT_RC_MALFORMED_PACKET, "Bad topic", port)
except mosq_test.TestError:
pass
finally:
if start_broker:
broker.terminate()
if mosq_test.wait_for_subprocess(broker):
print("broker not terminated")
if rc == 0: rc=1
(stdo, stde) = broker.communicate()
if rc:
print(stde.decode('utf-8'))
exit(rc)
else:
return rc
if __name__ == '__main__':
all_tests(True)

@ -76,6 +76,7 @@ msg_sequence_test:
03 :
#./03-publish-qos1-queued-bytes.py
./03-pattern-matching.py
./03-publish-bad-flags.py
./03-publish-b2c-disconnect-qos1.py
./03-publish-b2c-disconnect-qos2.py
./03-publish-b2c-qos1-len.py
@ -235,9 +236,6 @@ endif
./12-prop-subpub-payload-format.py
13 :
./13-malformed-publish-v5.py
./13-malformed-subscribe-v5.py
./13-malformed-unsubscribe-v5.py
14 :
ifeq ($(WITH_TLS),yes)

@ -33,6 +33,7 @@
{ "name": "82 multiple topic 1 len 0", "ver":4, "msgs": [{"type":"send", "payload":"82 09 1234 0000 00 0001 71 00"}]},
{ "name": "82 multiple topic 2 len 0", "ver":4, "msgs": [{"type":"send", "payload":"82 09 1234 0001 71 00 0000 00"}]},
{ "name": "82 multiple topic 1,2 len 0", "ver":4, "msgs": [{"type":"send", "payload":"82 08 1234 0000 00 0000 00"}]},
{ "name": "82 mid 0", "ver":4, "msgs": [{"type":"send", "payload":"82 06 0000 0001 70 00"}]},
{ "name": "82 single ok QoS 0 [MQTT-3.8.4-1]", "ver":4, "expect_disconnect":false, "msgs": [
{"type":"send", "payload":"82 06 1234 0001 70 00"},
{"type":"recv", "payload":"90 03 1234 00"}
@ -210,6 +211,10 @@
{ "name": "82 multiple ok [MQTT-3.8.4-4]", "ver":5, "expect_disconnect":false, "msgs": [
{"type":"send", "payload":"82 0B 1234 00 0001 70 00 0001 71 00"},
{"type":"recv", "payload":"90 05 1234 00 00 00"}
]},
{ "name": "82 mid 0", "ver":5, "msgs": [
{"type":"send", "payload":"82 07 0000 00 0001 70 00"},
{"type":"recv", "payload":"E0 01 81"}
]}
]
},

@ -35,7 +35,8 @@
{ "name": "A2 topic with U+001F", "ver":4, "msgs": [{"type":"send", "payload":"A2 09 1234 0005 746F701F70"}]},
{ "name": "A2 topic with U+007F", "ver":4, "msgs": [{"type":"send", "payload":"A2 09 1234 0005 746F707F70"}]},
{ "name": "A2 topic with U+009F", "ver":4, "msgs": [{"type":"send", "payload":"A2 09 1234 0005 746FC29F70"}]},
{ "name": "A2 topic with U+FFFF", "ver":4, "msgs": [{"type":"send", "payload":"A2 09 1234 0005 746FEDBFBF"}]}
{ "name": "A2 topic with U+FFFF", "ver":4, "msgs": [{"type":"send", "payload":"A2 09 1234 0005 746FEDBFBF"}]},
{ "name": "A2 zero mid", "ver":4, "msgs": [ {"type":"send", "payload":"A2 08 0000 0001 70 0001 71"}]}
]
},
{
@ -135,6 +136,10 @@
{ "name": "A2 multiple [MQTT-3.10.4-6]", "ver":5, "expect_disconnect":false, "msgs": [
{"type":"send", "payload":"A2 09 1234 00 0001 70 0001 71"},
{"type":"recv", "payload":"B0 05 1234 00 11 11"}
]},
{ "name": "A2 zero mid", "ver":5, "msgs": [
{"type":"send", "payload":"A2 06 0000 00 0001 70"},
{"type":"recv", "payload":"E0 01 81"}
]}
]
},

@ -54,6 +54,7 @@ tests = [
#(1, './03-publish-qos1-queued-bytes.py'),
(1, './03-pattern-matching.py'),
(1, './03-publish-bad-flags.py'),
(1, './03-publish-b2c-disconnect-qos1.py'),
(1, './03-publish-b2c-disconnect-qos2.py'),
(1, './03-publish-b2c-qos1-len.py'),
@ -200,10 +201,6 @@ tests = [
(1, './12-prop-subpub-content-type.py'),
(1, './12-prop-subpub-payload-format.py'),
(1, './13-malformed-publish-v5.py'),
(1, './13-malformed-subscribe-v5.py'),
(1, './13-malformed-unsubscribe-v5.py'),
(1, './14-dynsec-acl.py'),
(1, './14-dynsec-allow-wildcard.py'),
(1, './14-dynsec-anon-group.py'),

Loading…
Cancel
Save