- return [ theslice(i) for i in range (2*index-1,2*index+1) ]
-
-def all_slicenames (options,index):
- return [ slice['slice_fields']['name'] for slice in slices(options,index)]
-
-def tcp_tests (options,index):
- if index == 1:
- return [
- # local test
- { 'server_node': 'node1',
- 'server_slice' : '%s_sl1'%login_base(index),
- 'client_node' : 'node1',
- 'client_slice' : '%s_sl1'%login_base(index),
- 'port' : 2000,
- }]
- elif index == 2:
- return [
- # remote test
- { 'server_node': 'node2',
- 'server_slice' : '%s_sl3'%login_base(index),
- 'client_node' : 'node2',
- 'client_slice' : '%s_sl4'%login_base(index),
- 'port' : 4000,
- },
- ]
- else:
- return []
+ # usual index is 1, additional plc's then get 2...
+ # so index=1 -> 1 - 2 - 3
+ # index=2 -> 4 - 5 - 6
+ # 3 * (index-1) + 1 = 3*index-2 .. same+3 = 3*index+1
+ return [ theslice(i) for i in range (3*index-2,3*index+1) ]
+
+def all_slicenames (options, index):
+ return [ slice['slice_fields']['name'] for slice in slices(options, index)]
+
+# the logic here is to try:
+# . client and server on the same slice/node
+# . client and server on the same node but 2 different slices
+# if at least 2 plcs, we have 2 nodes, so again on diff. nodes
+def tcp_specs (options, index):
+ # only run the test on the first plc
+ if index != 1: return None
+ #
+ slice1 = '{}_sl1'.format(login_base(1))
+ slice2 = '{}_sl2'.format(login_base(1))
+ # with the addition of omf-friendly slices..
+ slice3 = '{}_sl4'.format(login_base(2))
+ slice4 = '{}_sl5'.format(login_base(2))
+
+# NOTE: port 9999 is hard-wired in the code to be used for checking network readiness
+# so it is not to be used here
+# bind on 0.0.0.0 and try to reach this on localhost
+# not expected to work
+ same_node_same_slice_lo = { 'server_node' : 'node1', 'server_slice': slice1,
+ 'client_node' : 'node1', 'client_slice': slice1,
+ 'client_connect' : 'localhost',
+ 'port': 10000}
+ same_node_same_slice = { 'server_node' : 'node1', 'server_slice': slice1,
+ 'client_node' : 'node1', 'client_slice': slice1,
+ 'port': 10001}
+# this does not work on vs-nodes....
+ same_node_2_slices = { 'server_node' : 'node1', 'server_slice': slice1,
+ 'client_node' : 'node1', 'client_slice': slice2,
+ 'port': 10002}
+ two_nodes_same_slice = { 'server_node' : 'node1', 'server_slice': slice1,
+ 'client_node' : 'node2', 'client_slice': slice3,
+ 'port': 10003}
+ two_nodes_2_slices = { 'server_node' : 'node1', 'server_slice': slice1,
+ 'client_node' : 'node2', 'client_slice': slice4,
+ 'port': 10004}
+ specs = []
+# specs += [ same_node_same_slice_lo ]
+ specs += [ same_node_same_slice ]
+# worth another try
+ specs += [ same_node_2_slices ]
+ if options.size > 1:
+ specs += [ two_nodes_same_slice, two_nodes_2_slices ]
+ return specs