Parallelise bridge clean session test.

This commit is contained in:
Roger A. Light 2021-07-28 15:54:21 +01:00
parent 4e146b7b53
commit eec1ef1c55
10 changed files with 91 additions and 13 deletions

View File

@ -84,12 +84,12 @@ def do_test(proto_ver, cs, lcs=None):
(port_a_listen, port_b_listen) = mosq_test.get_port(2)
conf_file_a = os.path.basename(__file__).replace('.py', '_a_edge.conf')
persistence_file_a = os.path.basename(__file__).replace('.py', '_a_edge.db')
conf_file_a = os.path.basename(__file__).replace('.py', '%d_a_edge.conf'%(port_a_listen))
persistence_file_a = os.path.basename(__file__).replace('.py', '%d_a_edge.db'%(port_a_listen))
write_config_edge(conf_file_a, persistence_file_a, port_b_listen, port_a_listen, bridge_protocol, cs=cs, lcs=lcs)
conf_file_b = os.path.basename(__file__).replace('.py', '_b_core.conf')
persistence_file_b = os.path.basename(__file__).replace('.py', '_b_core.db')
conf_file_b = os.path.basename(__file__).replace('.py', '%d_b_core.conf'%(port_b_listen))
persistence_file_b = os.path.basename(__file__).replace('.py', '%d_b_core.db'%(port_b_listen))
write_config_core(conf_file_b, port_b_listen, persistence_file_b)
AckedPair = namedtuple("AckedPair", "p ack")
@ -254,11 +254,25 @@ def do_test(proto_ver, cs, lcs=None):
print(stde_b.decode('utf-8'))
exit(1)
for cs in [True, False]:
for lcs in [None, True, False]:
do_test(proto_ver=4, cs=cs, lcs=lcs)
# FIXME - v5 clean session bridging doesn't work: see
# https://github.com/eclipse/mosquitto/issues/1632
#do_test(proto_ver=5, cs=cs, lcs=lcs)
if sys.argv[3] == "True":
cs = True
elif sys.argv[3] == "False":
cs = False
else:
raise ValueError("cs")
if sys.argv[4] == "True":
lcs = True
elif sys.argv[4] == "False":
lcs = False
elif sys.argv[4] == "None":
lcs = None
else:
raise ValueError("lcs")
do_test(proto_ver=4, cs=cs, lcs=lcs)
# FIXME - v5 clean session bridging doesn't work: see
# https://github.com/eclipse/mosquitto/issues/1632
#do_test(proto_ver=5, cs=cs, lcs=lcs)
exit(0)

View File

@ -0,0 +1,9 @@
#!/usr/bin/env python3
# Test whether a broker handles cleansession and local_cleansession correctly on bridges
from mosq_test_helper import *
from collections import namedtuple
(port_a_listen, port_b_listen) = mosq_test.get_port(2)
subprocess.run(['./06-bridge-clean-session-core.py', str(port_a_listen), str(port_b_listen), "False", "False"])

View File

@ -0,0 +1,9 @@
#!/usr/bin/env python3
# Test whether a broker handles cleansession and local_cleansession correctly on bridges
from mosq_test_helper import *
from collections import namedtuple
(port_a_listen, port_b_listen) = mosq_test.get_port(2)
subprocess.run(['./06-bridge-clean-session-core.py', str(port_a_listen), str(port_b_listen), "False", "None"])

View File

@ -0,0 +1,9 @@
#!/usr/bin/env python3
# Test whether a broker handles cleansession and local_cleansession correctly on bridges
from mosq_test_helper import *
from collections import namedtuple
(port_a_listen, port_b_listen) = mosq_test.get_port(2)
subprocess.run(['./06-bridge-clean-session-core.py', str(port_a_listen), str(port_b_listen), "False", "True"])

View File

@ -0,0 +1,9 @@
#!/usr/bin/env python3
# Test whether a broker handles cleansession and local_cleansession correctly on bridges
from mosq_test_helper import *
from collections import namedtuple
(port_a_listen, port_b_listen) = mosq_test.get_port(2)
subprocess.run(['./06-bridge-clean-session-core.py', str(port_a_listen), str(port_b_listen), "True", "False"])

View File

@ -0,0 +1,9 @@
#!/usr/bin/env python3
# Test whether a broker handles cleansession and local_cleansession correctly on bridges
from mosq_test_helper import *
from collections import namedtuple
(port_a_listen, port_b_listen) = mosq_test.get_port(2)
subprocess.run(['./06-bridge-clean-session-core.py', str(port_a_listen), str(port_b_listen), "True", "None"])

View File

@ -0,0 +1,9 @@
#!/usr/bin/env python3
# Test whether a broker handles cleansession and local_cleansession correctly on bridges
from mosq_test_helper import *
from collections import namedtuple
(port_a_listen, port_b_listen) = mosq_test.get_port(2)
subprocess.run(['./06-bridge-clean-session-core.py', str(port_a_listen), str(port_b_listen), "True", "True"])

View File

@ -126,7 +126,12 @@ test : test-compile 01 02 03 04 05 06 07 08 09 10 11 12 13 14
./06-bridge-br2b-disconnect-qos1.py
./06-bridge-br2b-disconnect-qos2.py
./06-bridge-br2b-remapping.py
./06-bridge-clean-session.py
./06-bridge-clean-session-csF-lcsF.py
./06-bridge-clean-session-csF-lcsN.py
./06-bridge-clean-session-csF-lcsT.py
./06-bridge-clean-session-csT-lcsF.py
./06-bridge-clean-session-csT-lcsN.py
./06-bridge-clean-session-csT-lcsT.py
./06-bridge-fail-persist-resend-qos1.py
./06-bridge-fail-persist-resend-qos2.py
./06-bridge-no-local.py

View File

@ -106,7 +106,12 @@ tests = [
(2, './06-bridge-br2b-disconnect-qos1.py'),
(2, './06-bridge-br2b-disconnect-qos2.py'),
(2, './06-bridge-br2b-remapping.py'),
(2, './06-bridge-clean-session.py'),
(2, './06-bridge-clean-session-csF-lcsF.py'),
(2, './06-bridge-clean-session-csF-lcsN.py'),
(2, './06-bridge-clean-session-csF-lcsT.py'),
(2, './06-bridge-clean-session-csT-lcsF.py'),
(2, './06-bridge-clean-session-csT-lcsN.py'),
(2, './06-bridge-clean-session-csT-lcsT.py'),
(2, './06-bridge-fail-persist-resend-qos1.py'),
(2, './06-bridge-fail-persist-resend-qos2.py'),
(1, './06-bridge-no-local.py'),

View File

@ -709,7 +709,7 @@ def get_port(count=1):
else:
return 1888
else:
if len(sys.argv) == 1+count:
if len(sys.argv) >= 1+count:
p = ()
for i in range(0, count):
p = p + (int(sys.argv[1+i]),)