More client tests.

pull/2345/head
Roger A. Light 4 years ago
parent 6051a65f51
commit 57ef2be8d3

@ -51,6 +51,7 @@ if __name__ == '__main__':
do_test(['--proxy'], "Error: --proxy argument given but no proxy url specified.\n\n" + helps, 1)
do_test(['--psk'], "Error: --psk argument given but no key specified.\n\n" + helps, 1)
do_test(['--psk-identity'], "Error: --psk-identity argument given but no identity specified.\n\n" + helps, 1)
do_test(['--random-filter'], "Error: --random-filter argument given but no chance specified.\n\n" + helps, 1)
do_test(['-q'], "Error: -q argument given but no QoS specified.\n\n" + helps, 1)
do_test(['-t'], "Error: -t argument given but no topic specified.\n\n" + helps, 1)
do_test(['--tls-alpn'], "Error: --tls-alpn argument given but no protocol specified.\n\n" + helps, 1)
@ -124,6 +125,7 @@ if __name__ == '__main__':
do_test(['--unknown'], "Error: Unknown option '--unknown'.\n" + helps, 1)
do_test(['-l'], "Error: Unknown option '-l'.\n" + helps, 1)
do_test(['-m'], "Error: Unknown option '-m'.\n" + helps, 1)
do_test(['-n'], "Error: Unknown option '-n'.\n" + helps, 1)
do_test(['-r'], "Error: Unknown option '-r'.\n" + helps, 1)
do_test(['--repeat'], "Error: Unknown option '--repeat'.\n" + helps, 1)
do_test(['--repeat-delay'], "Error: Unknown option '--repeat-delay'.\n" + helps, 1)

@ -0,0 +1,69 @@
#!/usr/bin/env python3
#
from mosq_test_helper import *
def do_test(proto_ver):
rc = 1
port = mosq_test.get_port()
if proto_ver == 5:
V = 'mqttv5'
elif proto_ver == 4:
V = 'mqttv311'
else:
V = 'mqttv31'
env = {
'LD_LIBRARY_PATH':'../../lib',
'XDG_CONFIG_HOME':'/tmp/missing'
}
cmd = ['../../client/mosquitto_sub',
'-p', str(port),
'-q', '0',
'-t', '02/sub/filter-out/#',
'-T', '02/sub/filter-out/filtered',
'-V', V,
'-C', '2'
]
publish_packet1 = mosq_test.gen_publish("02/sub/filter-out/recv", qos=0, payload="recv", proto_ver=proto_ver)
publish_packet2 = mosq_test.gen_publish("02/sub/filter-out/filtered", qos=0, payload="filtered", proto_ver=proto_ver)
broker = mosq_test.start_broker(filename=os.path.basename(__file__), port=port)
try:
sock = mosq_test.pub_helper(port=port, proto_ver=proto_ver)
sub = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env)
time.sleep(0.1)
sock.send(publish_packet1)
sock.send(publish_packet2)
sock.send(publish_packet1)
sock.send(publish_packet2)
sub.wait()
(stdo, stde) = sub.communicate()
if stdo.decode('utf-8') == 'recv\nrecv\n':
rc = 0
else:
print(stdo.decode('utf-8'))
sock.close()
except mosq_test.TestError:
pass
except Exception as e:
print(e)
finally:
broker.terminate()
broker.wait()
(stdo, stde) = broker.communicate()
if rc:
print(stde.decode('utf-8'))
print("proto_ver=%d" % (proto_ver))
exit(rc)
do_test(proto_ver=3)
do_test(proto_ver=4)
do_test(proto_ver=5)

@ -108,6 +108,7 @@ if __name__ == '__main__':
do_test(['-p', '65536'], "Error: Invalid port given: 65536\n" + helps, 1)
do_test(['-q', '-1'], "Error: Invalid QoS given: -1\n" + helps, 1)
do_test(['-q', '3'], "Error: Invalid QoS given: 3\n" + helps, 1)
do_test(['--repeat-delay', '-1'], "Error: --repeat-delay argument must be >=0.0.\n\n" + helps, 1)
do_test(['-t', 'topic/+'], "Error: Invalid publish topic 'topic/+', does it contain '+' or '#'?\n" + helps, 1)
do_test(['-t', 'topic/#'], "Error: Invalid publish topic 'topic/#', does it contain '+' or '#'?\n" + helps, 1)
do_test(['-V', '5', '-D', 'connect', 'request-problem-information', '-1'], "Error: Property value (-1) out of range for property request-problem-information.\n\n" + helps, 1)
@ -117,6 +118,7 @@ if __name__ == '__main__':
do_test(['-V', '5', '-D', 'connect', 'session-expiry-interval', '-1'], "Error: Property value (-1) out of range for property session-expiry-interval.\n\n" + helps, 1)
do_test(['-V', '5', '-D', 'connect', 'session-expiry-interval', '4294967296'], "Error: Property value (4294967296) out of range for property session-expiry-interval.\n\n" + helps, 1)
do_test(['-V', '5', '-D', 'publish', 'subscription-identifier', '1'], "Error: subscription-identifier property not supported for publish in --property argument.\n\n" + helps, 1)
do_test(['-t','topic','-m','1', '--cafile', 'missing'], "Error: Problem setting TLS options: File not found.\n", 1)
# Unknown options
do_test(['--unknown'], "Error: Unknown option '--unknown'.\n" + helps, 1)

@ -9,6 +9,7 @@ test : 02 03
02 :
./02-subscribe-argv-errors.py
./02-subscribe-filter-out.py
./02-subscribe-qos1.py
./02-subscribe-format.py
./02-subscribe-null.py
@ -20,6 +21,7 @@ test : 02 03
./03-publish-qos0-empty.py
./03-publish-qos1-properties.py
./03-publish-qos1.py
./03-publish-repeat.py
./03-publish-socks.py
./03-publish-stdin-file.py
./03-publish-stdin-line.py

@ -6,6 +6,7 @@ import ptest
tests = [
#(ports required, 'path'),
(1, './02-subscribe-argv-errors.py'),
(1, './02-subscribe-filter-out.py'),
(1, './02-subscribe-format.py'),
(1, './02-subscribe-null.py'),
(1, './02-subscribe-qos1.py'),
@ -16,6 +17,7 @@ tests = [
(1, './03-publish-qos0-empty.py'),
(1, './03-publish-qos1-properties.py'),
(1, './03-publish-qos1.py'),
(1, './03-publish-repeat.py'),
(2, './03-publish-socks.py'),
(1, './03-publish-stdin-file.py'),
(1, './03-publish-stdin-line.py'),

Loading…
Cancel
Save