def set_pixits(ptses): """Setup SM profile PIXITS for workspace. Those values are used for test case if not updated within test case. PIXITS always should be updated accordingly to project and newest version of PTS. ptses -- list of PyPTS instances""" pts = ptses[0] global iut_device_name iut_device_name = get_unique_name(pts) pts.set_pixit("SM", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts.set_pixit("SM", "TSPX_iut_device_name_in_adv_packet_for_random_address", "") pts.set_pixit("SM", "TSPX_time_guard", "180000") pts.set_pixit("SM", "TSPX_use_implicit_send", "TRUE") pts.set_pixit("SM", "TSPX_new_key_failed_count", "0") pts.set_pixit("SM", "TSPX_Bonding_Flags", "01") pts.set_pixit("SM", "TSPX_ATTR_HANDLE", "0000") pts.set_pixit("SM", "TSPX_ATTR_VALUE", "0000000000000000") pts.set_pixit("SM", "TSPX_Min_Encryption_Key_Length", "07") pts.set_pixit("SM", "TSPX_OOB_Data", "0000000000000000FE12036E5A889F4D") pts.set_pixit("SM", "TSPX_tester_role_optional", "L2CAP_ROLE_INITIATOR")
def test_cases(ptses): """Returns a list of GATT test cases ptses -- list of PyPTS instances""" pts = ptses[0] stack = get_stack() iut_device_name = get_unique_name(pts) stack.gap_init(iut_device_name) tc_list = test_cases_client(pts) tc_list += test_cases_server(pts) return tc_list
def test_cases(ptses): """Returns a list of DIS Server test cases""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr iut_device_name = get_unique_name(pts) stack = get_stack() pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(stack.gap_init, iut_device_name, iut_manufacturer_data, iut_appearance, iut_svc_data, iut_flags, iut_svcs), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("DIS", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param("DIS", "TSPX_delete_link_key", "TRUE")), TestFunc(lambda: pts.update_pixit_param( "DIS", "TSPX_iut_device_name_in_adv_packet_for_random_address", iut_device_name)), # We do this on test case, because previous one could update # this if RPA was used by PTS # TODO: Get PTS address type TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] custom_test_cases = [] test_case_name_list = pts.get_test_case_list('DIS') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase("DIS", tc_name, cmds=pre_conditions + init_server, generic_wid_hdl=dis_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def test_cases_client(pts): """Returns a list of GATT Client test cases pts -- Instance of PyPTS """ pts_bd_addr = pts.q_bd_addr iut_device_name = get_unique_name(pts) stack = get_stack() pre_conditions = [ TestFunc(stack.gap_init, iut_device_name), TestFunc(btp.core_reg_svc_gap), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param( "GATT", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(btp.core_reg_svc_gatt), TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public), TestFunc(stack.gatt_init) ] custom_test_cases = [ # PTS issue #15965 # ZTestCase("GATT", "GATT/CL/GAW/BV-02-C", ] test_case_name_list = pts.get_test_case_list('GATT') tc_list = [] for tc_name in test_case_name_list: if not tc_name.startswith('GATT/CL'): continue instance = ZTestCase("GATT", tc_name, cmds=pre_conditions, generic_wid_hdl=gatt_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def set_pixits(ptses): """Setup GATT profile PIXITS for workspace. Those values are used for test case if not updated within test case. PIXITS always should be updated accordingly to project and newest version of PTS. ptses -- list of PyPTS instances""" pts = ptses[0] global iut_device_name iut_device_name = get_unique_name(pts) pts.set_pixit("GATT", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts.set_pixit("GATT", "TSPX_iut_device_name_in_adv_packet_for_random_address", "") pts.set_pixit("GATT", "TSPX_security_enabled", "FALSE") pts.set_pixit("GATT", "TSPX_delete_link_key", "TRUE") pts.set_pixit("GATT", "TSPX_time_guard", "180000") pts.set_pixit("GATT", "TSPX_selected_handle", "0012") pts.set_pixit("GATT", "TSPX_use_implicit_send", "TRUE") pts.set_pixit("GATT", "TSPX_secure_simple_pairing_pass_key_confirmation", "FALSE") pts.set_pixit("GATT", "TSPX_iut_use_dynamic_bd_addr", "FALSE") pts.set_pixit("GATT", "TSPX_iut_setup_att_over_br_edr", "FALSE") pts.set_pixit( "GATT", "TSPX_tester_database_file", "C:\Program Files\Bluetooth SIG\Bluetooth PTS\Data\SIGDatabase\GATT_Qualification_Test_Databases.xml" ) pts.set_pixit("GATT", "TSPX_iut_is_client_periphral", "FALSE") pts.set_pixit("GATT", "TSPX_iut_is_server_central", "FALSE") pts.set_pixit("GATT", "TSPX_mtu_size", "23") pts.set_pixit("GATT", "TSPX_pin_code", "0000") pts.set_pixit("GATT", "TSPX_use_dynamic_pin", "FALSE") pts.set_pixit("GATT", "TSPX_delete_ltk", "TRUE") pts.set_pixit("GATT", "TSPX_tester_appearance", "0000")
def test_cases(ptses): """Returns a list of L2CAP test cases ptses -- list of PyPTS instances""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr stack = get_stack() iut_device_name = get_unique_name(pts) stack.gap_init(iut_device_name) common = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.core_reg_svc_l2cap), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_bd_addr_iut_le", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_iut_supported_max_channels", "2")), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_IUT_mps", format(le_mps, '04x'))), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_spsm", format(le_psm, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_psm_unsupported", format(psm_unsupported, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_iut_address_type_random", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] pre_conditions = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm) ] pre_conditions_auth = common + [ TestFunc(stack.l2cap_init, psm_authentication_required, le_initial_mtu), TestFunc(btp.l2cap_le_listen, psm_authentication_required) ] pre_conditions_keysize = common + [ TestFunc(stack.l2cap_init, psm_encryption_key_size_required, le_initial_mtu), TestFunc(btp.l2cap_le_listen, psm_encryption_key_size_required) ] pre_conditions_author = common + [ TestFunc(stack.l2cap_init, psm_authorization_required, le_initial_mtu), TestFunc(btp.l2cap_le_listen, psm_authorization_required) ] pre_conditions_encryption = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm, le_initial_mtu, L2CAPConnectionResponse.insufficient_encryption) ] pre_conditions_1 = common + [ TestFunc(stack.l2cap_init, le_psm_eatt, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm_eatt, mtu=le_initial_mtu) ] pre_conditions_2 = common + [ TestFunc(stack.l2cap_init, le_psm_eatt, le_initial_mtu), ] # EATT is not supported in NimBLE, but we need to listen on EATT PSM in ECFC tests pre_conditions_eatt = common + [ TestFunc(stack.l2cap_init, le_psm_eatt, le_initial_mtu) ] pre_conditions_eatt_authen = pre_conditions_eatt + [ TestFunc(btp.l2cap_le_listen, le_psm_eatt, le_initial_mtu, L2CAPConnectionResponse.insufficient_authentication) ] pre_conditions_eatt_author = pre_conditions_eatt + [ TestFunc(btp.l2cap_le_listen, le_psm_eatt, le_initial_mtu, L2CAPConnectionResponse.insufficient_authorization) ] pre_conditions_eatt_keysize = pre_conditions_eatt + [ TestFunc(btp.l2cap_le_listen, le_psm_eatt, le_initial_mtu, L2CAPConnectionResponse.insufficient_encryption_key_size) ] custom_test_cases = [ # Connection Parameter Update ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-04-C", pre_conditions + [TestFunc(lambda: stack.l2cap.psm_set(psm_unsupported))], generic_wid_hdl=l2cap_wid_hdl), ZTestCase( "L2CAP", "L2CAP/LE/CFC/BV-10-C", pre_conditions + [ TestFunc( lambda: stack.l2cap.psm_set(psm_authentication_required)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-11-C", pre_conditions_auth, generic_wid_hdl=l2cap_wid_hdl), ZTestCase( "L2CAP", "L2CAP/LE/CFC/BV-12-C", pre_conditions + [ TestFunc( lambda: stack.l2cap.psm_set(psm_authorization_required)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-13-C", pre_conditions_author, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-14-C", pre_conditions + [ TestFunc(lambda: stack.l2cap.psm_set( psm_encryption_key_size_required)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-15-C", pre_conditions_keysize, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-25-C", pre_conditions_encryption, generic_wid_hdl=l2cap_wid_hdl), # Enhanced Credit Based Flow Control Channel ZTestCase("L2CAP", "L2CAP/ECFC/BV-11-C", pre_conditions_eatt_authen, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-13-C", pre_conditions_eatt_author, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-15-C", pre_conditions_eatt_keysize, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-27-C", pre_conditions_1 + [ TestFunc(btp.l2cap_le_listen, le_psm_eatt, le_initial_mtu, L2cap.unacceptable_parameters) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-29-C", pre_conditions_1 + [TestFunc(lambda: stack.l2cap.num_channels_set(1))], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/COS/ECFC/BV-01-C", pre_conditions_1, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/COS/ECFC/BV-02-C", pre_conditions_1, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/COS/ECFC/BV-03-C", pre_conditions_1, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BI-02-C", pre_conditions_1 + [TestFunc(lambda: stack.l2cap.hold_credits_set(1))], generic_wid_hdl=l2cap_wid_hdl), ] test_case_name_list = pts.get_test_case_list('L2CAP') tc_list = [] for tc_name in test_case_name_list: if tc_name.startswith('L2CAP/ECFC'): instance = ZTestCase('L2CAP', tc_name, pre_conditions_1, generic_wid_hdl=l2cap_wid_hdl) else: instance = ZTestCase('L2CAP', tc_name, pre_conditions, generic_wid_hdl=l2cap_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def test_cases(ptses): """Returns a list of L2CAP test cases ptses -- list of PyPTS instances""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr stack = get_stack() iut_device_name = get_unique_name(pts) stack.gap_init(iut_device_name) common = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.core_reg_svc_l2cap), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_bd_addr_iut_le", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_spsm", format(le_psm, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_psm_authentication_required", format(le_psm, '04x')) ), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_psm_authorization_required", format(le_psm, '04x')) ), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_psm_encryption_key_size_required", format(le_psm, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_psm_encryption_required", format(le_psm, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_psm_unsupported", format(psm_unsupported, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_iut_supported_max_channels", "2")), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_l2ca_num_concurrent_credit_based_connections", "2") ), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_l2ca_cbmps_min", format(69, '04x'))), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_l2ca_cbmps_max", format(69, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_iut_address_type_random", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] pre_conditions = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu) ] pre_conditions_success = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm, le_initial_mtu, L2CAPConnectionResponse.success) ] pre_conditions_authen = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm, le_initial_mtu, L2CAPConnectionResponse.insufficient_authentication) ] pre_conditions_keysize = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm, le_initial_mtu, L2CAPConnectionResponse.insufficient_encryption_key_size) ] pre_conditions_author = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm, le_initial_mtu, L2CAPConnectionResponse.insufficient_authorization) ] custom_test_cases = [ ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-04-C", pre_conditions + [TestFunc(lambda: stack.l2cap.psm_set(psm_unsupported))], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-11-C", pre_conditions_authen, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-13-C", pre_conditions_author, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-15-C", pre_conditions_keysize, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-25-C", pre_conditions_authen, generic_wid_hdl=l2cap_wid_hdl), # Enhanced Credit Based Flow Control Channel ZTestCase("L2CAP", "L2CAP/COS/ECFC/BV-04-C", pre_conditions + [ TestFunc(lambda: stack.l2cap.initial_mtu_set( le_initial_mtu_equal_mps)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-11-C", pre_conditions_authen, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-13-C", pre_conditions_author, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-15-C", pre_conditions_keysize, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-29-C", pre_conditions_success + [TestFunc(lambda: stack.l2cap.num_channels_set(1))], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BI-01-C", pre_conditions_success + [TestFunc(lambda: stack.l2cap.num_channels_set(1))], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BI-02-C", pre_conditions_success + [ TestFunc(lambda: stack.l2cap.num_channels_set(1)), TestFunc(lambda: stack.l2cap.hold_credits_set(1)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BI-06-C", pre_conditions_success + [ TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_l2ca_cbmps_min", format(63, '04x'))) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BI-07-C", pre_conditions_success + [TestFunc(lambda: stack.l2cap.hold_credits_set(1))], generic_wid_hdl=l2cap_wid_hdl), ] test_case_name_list = pts.get_test_case_list('L2CAP') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase('L2CAP', tc_name, pre_conditions_success, generic_wid_hdl=l2cap_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def test_cases(ptses): """Returns a list of SM test cases ptses -- list of PyPTS instances""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr iut_device_name = get_unique_name(pts) stack = get_stack() stack.gap_init(name=iut_device_name) pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("SM", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "SM", "TSPX_peer_addr_type", "01" if stack.gap.iut_addr_is_random() else "00")), # FIXME Find better place to store PTS bdaddr TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] custom_test_cases = [ BTestCase("SM", "SM/MAS/PROT/BV-01-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), BTestCase("SM", "SM/SLA/PROT/BV-02-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), BTestCase("SM", "SM/SLA/JW/BV-02-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), BTestCase("SM", "SM/SLA/JW/BI-02-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), BTestCase("SM", "SM/SLA/JW/BI-03-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), BTestCase("SM", "SM/MAS/SIGN/BV-01-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.core_reg_svc_gatt) ], generic_wid_hdl=sm_wid_hdl), ] test_case_name_list = pts.get_test_case_list('SM') tc_list = [] for tc_name in test_case_name_list: instance = BTestCase( 'SM', tc_name, pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=sm_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def test_cases(ptses): """Returns a list of MMDL test cases ptses -- list of PyPTS instances""" pts = ptses[0] stack = get_stack() device_uuid = hexlify(uuid4().bytes) device_uuid2 = hexlify(uuid4().bytes) out_actions = [defs.MESH_OUT_DISPLAY_NUMBER, defs.MESH_OUT_DISPLAY_STRING, defs.MESH_OUT_DISPLAY_NUMBER | defs.MESH_OUT_DISPLAY_STRING] in_actions = [defs.MESH_IN_ENTER_NUMBER, defs.MESH_IN_ENTER_STRING, defs.MESH_IN_ENTER_NUMBER | defs.MESH_IN_ENTER_STRING] oob = 16 * '00' out_size = random.randint(0, 2) rand_out_actions = random.choice(out_actions) if out_size else 0 in_size = random.randint(0, 2) rand_in_actions = random.choice(in_actions) if in_size else 0 crpl_size = 10 # Maximum capacity of the replay protection list iut_device_name = get_unique_name(pts) stack.gap_init(iut_device_name) stack.mesh_init(device_uuid, oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size) pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.core_reg_svc_mesh), TestFunc(btp.core_reg_svc_mmdl), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param( "MMDL", "TSPX_device_uuid", stack.mesh.dev_uuid)), TestFunc(lambda: pts.update_pixit_param( "MMDL", "TSPX_device_uuid2", device_uuid2)), TestFunc(lambda: pts.update_pixit_param( "MMDL", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str()))] tc_list = [ ZTestCase("MMDL", "MMDL/SR-CL/COMP/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GOO/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GOO/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GOO/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GOO/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLV/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLV/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLV/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLV/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLV/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLV/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLV/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GDTT/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GDTT/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPOO/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPOO/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPOO/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPOO/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPOOS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPOOS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPL/BV-15-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPLS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPLS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GPLS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GBAT/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLOC/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLOC/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLOCS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GLOCS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GUP/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GUP/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GUP/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GUP/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GAP/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GAP/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GAP/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GAP/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GAP/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GMP/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GMP/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GMP/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GMP/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GMP/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/GCP/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BI-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BI-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNR/BI-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BI-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SNRS/BI-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIM/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIM/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIM/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIMS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIMS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIMS/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIMS/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/TIMS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-15-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-16-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-17-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-18-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLN/BV-19-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLNS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLNS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLNS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLC/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLCS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLCS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LLCS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/MLTEL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/MLTEL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYL/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LXYS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSL/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLH/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLH/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLH/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLH/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLSA/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLSA/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLSA/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLSA/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLSE/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLSE/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LHSLSE/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTL/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLT/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLT/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLT/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLT/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLS/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/LCTLS/BI-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCE/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCE/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCE/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCES/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCES/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCH/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCH/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCHS/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/SR/SCHS/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GOO/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GOO/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GOO/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GOO/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GOO/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GOO/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GOO/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLV/BV-15-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GDTT/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GDTT/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GDTT/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPOO/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPOO/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPOO/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPL/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GBAT/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLOC/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLOC/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLOC/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLOC/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLOC/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GLOC/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/GPR/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SNR/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/TIM/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-15-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-16-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-17-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-18-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-19-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-20-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLN/BV-21-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-15-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LLC/BV-16-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-15-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-16-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-17-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-18-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-19-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LCTL/BV-20-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCE/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LXYL/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-05-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-06-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-07-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-08-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-09-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-10-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-11-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-12-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-13-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-14-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-15-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-16-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-17-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-18-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-19-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-20-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-21-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-22-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-23-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-24-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-25-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-26-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-27-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/LHSL/BV-28-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCH/BV-01-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCH/BV-02-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCH/BV-03-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ZTestCase("MMDL", "MMDL/CL/SCH/BV-04-C", cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl), ] return tc_list
def test_cases(ptses): """Returns a list of GAP test cases ptses -- list of PyPTS instances""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr stack = get_stack() iut_device_name = get_unique_name(pts) ad_str_flags = str(AdType.flags).zfill(2) + \ str(AdFlags.br_edr_not_supp).zfill(2) ad_str_flags_len = str(len(ad_str_flags) // 2).zfill(2) ad_str_name_short = str(AdType.name_short).zfill(2) + \ bytes.hex(iut_device_name) ad_str_name_short_len = format((len(ad_str_name_short) // 2), 'x').zfill(2) ad_pixit = ad_str_flags_len + ad_str_flags + ad_str_name_short_len + \ ad_str_name_short pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(stack.gap_init, iut_device_name, iut_manufacturer_data, iut_appearance, iut_svc_data, iut_flags, iut_svcs, iut_ad_uri), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_bd_addr_PTS", pts_bd_addr.replace(':', ''))), TestFunc(pts.update_pixit_param, "GAP", "TSPX_iut_private_address_interval", '30000'), TestFunc(lambda: pts.update_pixit_param("GAP", "TSPX_URI", iut_ad_uri)), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_privacy_enabled", "TRUE" if stack.gap.iut_has_privacy() else "FALSE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_using_public_device_address", "FALSE" if stack.gap.iut_addr_is_random() else "TRUE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_device_name_in_adv_packet_for_random_address", iut_device_name)), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_advertising_data", ad_pixit)), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_using_random_device_address", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), # We do this on test case, because previous one could update # this if RPA was used by PTS # TODO: Get PTS address type TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public)] custom_test_cases = [ ZTestCase("GAP", "GAP/BROB/BCST/BV-03-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BROB/OBSV/BV-06-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/CONN/UCON/BV-06-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BOND/BON/BV-01-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BOND/BON/BV-03-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BOND/BON/BV-04-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-11-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-12-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-13-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-14-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.keyboard_display)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-17-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-18-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-19-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-20-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-23-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-24-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-21-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-22-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-23-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-24-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-26-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_failed_read), ZTestCase("GAP", "GAP/SEC/SEM/BV-27-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-28-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_failed_read), ZTestCase("GAP", "GAP/SEC/SEM/BV-29-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-37-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-38-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-39-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl2), ZTestCase("GAP", "GAP/SEC/SEM/BV-40-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-41-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_failed_read), ZTestCase("GAP", "GAP/SEC/SEM/BV-42-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_failed_read), ZTestCase("GAP", "GAP/SEC/SEM/BV-43-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl2), ZTestCase("GAP", "GAP/SEC/SEM/BV-44-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-09-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-10-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-20-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-21-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-22-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-23-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/PRIV/CONN/BV-10-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/PRIV/CONN/BI-01-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), # GAP/GAT/BV-01-C # wid: 158 description: IUT support both Central and Peripheral roles. # Click Yes if IUT act as Central role to execute this test otherwise # click No to act as Peripheral role. ] test_case_name_list = pts.get_test_case_list('GAP') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase("GAP", tc_name, cmds=pre_conditions, generic_wid_hdl=gap_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def test_cases(ptses): """Returns a list of MESH test cases ptses -- list of PyPTS instances""" pts = ptses[0] iut_device_name = get_unique_name(pts) stack = get_stack() device_uuid = hexlify(uuid4().bytes) device_uuid2 = hexlify(uuid4().bytes) out_actions = [defs.MESH_OUT_DISPLAY_NUMBER, defs.MESH_OUT_DISPLAY_STRING, defs.MESH_OUT_DISPLAY_NUMBER | defs.MESH_OUT_DISPLAY_STRING] in_actions = [defs.MESH_IN_ENTER_NUMBER, defs.MESH_IN_ENTER_STRING, defs.MESH_IN_ENTER_NUMBER | defs.MESH_IN_ENTER_STRING] oob = 16 * '00' out_size = random.randint(0, 2) rand_out_actions = random.choice(out_actions) if out_size else 0 in_size = random.randint(0, 2) rand_in_actions = random.choice(in_actions) if in_size else 0 crpl_size = 10 # Maximum capacity of the replay protection list auth_metod = 0x00 pub_key = ("F465E43FF23D3F1B9DC7DFC04DA8758184DBC966204796ECCF0D6CF5E16500CC" "0201D048BCBBD899EEEFC424164E33C201C2B010CA6B4D43A8A155CAD8ECB279") priv_key = "529AA0670D72CD6497502ED473502B037E8803B5C60829A5A3CAA219505530BA" stack.gap_init(iut_device_name) stack.mesh_init(device_uuid, device_uuid2) common_pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.core_reg_svc_mesh), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_maximum_network_message_cache_entries", "10")), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_maximum_number_of_supported_subnets", "2")), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_subscription_address_list", MeshVals.subscription_addr_list1)), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_OOB_code", oob)), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_enable_IUT_provisioner", "FALSE")), ] pre_conditions = common_pre_conditions + [ TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size, auth_metod)), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_device_uuid", stack.mesh.get_dev_uuid())), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_device_uuid2", stack.mesh.get_dev_uuid_lt2())), ] pre_conditions_slave = [ TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_device_uuid", stack.mesh.get_dev_uuid_lt2())), TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_device_uuid2", stack.mesh.get_dev_uuid())), TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_OOB_code", oob)), ] # Some test cases require device_uuid and device_uuid2 to be swapped pre_conditions_lt2 = common_pre_conditions + [ TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size, auth_metod)), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_device_uuid", stack.mesh.get_dev_uuid_lt2())), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_device_uuid2", stack.mesh.get_dev_uuid())), ] pre_conditions_lt2_slave = [ TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_device_uuid", stack.mesh.get_dev_uuid())), TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_device_uuid2", stack.mesh.get_dev_uuid_lt2())), TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_OOB_code", oob)), ] pre_conditions_prov = pre_conditions + [ TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_enable_IUT_provisioner", "TRUE")), TestFunc(lambda: stack.mesh.set_iut_provisioner(True)), TestFunc(lambda: stack.mesh.expect_node(stack.mesh.get_dev_uuid())), ] pre_conditions_prov_pub_key = pre_conditions_prov + [ TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_device_public_key", pub_key)), TestFunc(lambda: stack.mesh.pub_key_set(pub_key)), ] pre_conditions_pub_priv_key = pre_conditions + [ TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_device_public_key", pub_key)), TestFunc(lambda: stack.mesh.pub_key_set(pub_key)), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_device_private_key", priv_key)), TestFunc(lambda: stack.mesh.priv_key_set(priv_key)) ] custom_test_cases = [ ZTestCase("MESH", "MESH/NODE/CFG/CFGR/BV-01-C", cmds=pre_conditions + [TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_iut_supports_relay", "TRUE"))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/IVU/BV-03-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/IVU/BV-04-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/IVU/BV-05-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-04-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-20-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-23-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/SR/PROX/BV-12-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/SR/PROX/BV-14-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/CFG/HBP/BV-05-C", cmds=pre_conditions + [TestFunc(lambda: btp.mesh_lpn(True))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/PROV/BV-01-C", cmds=pre_conditions + [TestFunc(lambda: stack.mesh.set_prov_data(oob, random.randint(1, 2), random.choice(out_actions), in_size, rand_in_actions, crpl_size, auth_metod))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/PROV/BV-02-C", cmds=pre_conditions + [TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, random.randint(1, 2), random.choice(in_actions), crpl_size, auth_metod))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/PROV/BV-04-C", cmds=pre_conditions_pub_priv_key + [TestFunc(lambda: stack.mesh.set_prov_data(oob, 1, defs.MESH_OUT_DISPLAY_NUMBER, in_size, rand_in_actions, crpl_size, auth_metod))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/PROV/BV-05-C", cmds=pre_conditions_pub_priv_key + [TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, random.randint(1, 2), random.choice(in_actions), crpl_size, auth_metod))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/PROV/BV-06-C", cmds=pre_conditions_pub_priv_key, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/PROV/BV-08-C", cmds=pre_conditions_pub_priv_key, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/TNPT/BV-06-C", cmds=pre_conditions + [TestFunc(btp.mesh_store_net_data)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/TNPT/BV-07-C", cmds=pre_conditions + [TestFunc(btp.mesh_store_net_data)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/TNPT/BV-08-C", cmds=pre_conditions + [TestFunc(btp.mesh_store_net_data)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/KR/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/KR/BV-02-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/SNBP/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/COMP/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/DTTL/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/GPXY/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/CFGF/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/CFGR/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/MP/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/SL/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/SL/BV-02-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/NKL/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/NKL/BV-02-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/NKL/BV-03-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/AKL/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/AKL/BV-02-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/AKL/BV-03-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/AKL/BV-04-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/MAKL/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/MAKL/BV-02-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/MAKL/BV-03-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/MAKL/BV-04-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/NID/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/RST/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/HBP/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/HBS/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/NTX/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/CFGCL/CFG/LPNPT/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-01-C", cmds=pre_conditions_prov + [TestFunc(lambda: stack.mesh.set_prov_data(oob, 1, defs.MESH_OUT_DISPLAY_NUMBER, random.randint(1, 2), defs.MESH_INPUT_NUMBER, crpl_size, defs.MESH_OUTPUT_OOB))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-02-C", cmds=pre_conditions_prov + [TestFunc(lambda: stack.mesh.set_prov_data(oob, 8, defs.MESH_OUT_DISPLAY_NUMBER, 8, defs.MESH_IN_TWIST, crpl_size, defs.MESH_INPUT_OOB))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-03-C", cmds=pre_conditions_prov + [TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size, defs.MESH_STATIC_OOB))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-04-C", cmds=pre_conditions_prov_pub_key + [TestFunc(lambda: stack.mesh.set_prov_data(oob, 1, defs.MESH_OUT_DISPLAY_NUMBER, random.randint( 1, 2), defs.MESH_INPUT_NUMBER, crpl_size, defs.MESH_OUTPUT_OOB))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-05-C", cmds=pre_conditions_prov_pub_key + [TestFunc(lambda: stack.mesh.set_prov_data(oob, 8, defs.MESH_OUT_DISPLAY_STRING, 8, defs.MESH_IN_ENTER_STRING, crpl_size, defs.MESH_INPUT_OOB))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-06-C", cmds=pre_conditions_prov_pub_key + [TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size, defs.MESH_STATIC_OOB))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-07-C", cmds=pre_conditions_prov + [TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size, auth_metod))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-08-C", cmds=pre_conditions_prov_pub_key + [TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size, auth_metod))], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-09-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BV-10-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BI-14-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BI-16-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PROV/BI-18-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PBADV/BV-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PBADV/BV-02-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PBADV/BV-03-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/PVNR/PBADV/BI-01-C", cmds=pre_conditions_prov, generic_wid_hdl=mesh_wid_hdl), ] test_cases_lt2 = [ ZTestCase("MESH", "MESH/SR/MPXS/BV-08-C", cmds=pre_conditions_lt2 + [TestFunc(get_stack().synch.add_synch_element, [SynchPoint("MESH/SR/MPXS/BV-08-C", 12), SynchPoint("MESH/SR/MPXS/BV-08-C-LT2", 13)])], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/MPXS/BV-08-C-LT2"), ZTestCase("MESH", "MESH/CFGCL/KR/BV-03-C", cmds=pre_conditions_prov + [TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(lambda: stack.mesh.expect_node( stack.mesh.get_dev_uuid_lt2())), TestFunc(get_stack().synch.add_synch_element, [SynchPoint("MESH/CFGCL/KR/BV-03-C", 272), SynchPoint("MESH/CFGCL/KR/BV-03-C-LT2", 269)])], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/CFGCL/KR/BV-03-C-LT2"), ZTestCase("MESH", "MESH/CFGCL/KR/BV-04-C", cmds=pre_conditions_prov + [TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(lambda: stack.mesh.expect_node( stack.mesh.get_dev_uuid_lt2())), TestFunc(get_stack().synch.add_synch_element, [SynchPoint("MESH/CFGCL/KR/BV-04-C", 276), SynchPoint("MESH/CFGCL/KR/BV-04-C-LT2", 212)])], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/CFGCL/KR/BV-04-C-LT2"), ] test_cases_slaves = [ ZTestCaseSlave("MESH", "MESH/CFGCL/KR/BV-03-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/CFGCL/KR/BV-04-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/MPXS/BV-08-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ] test_case_name_list = pts.get_test_case_list('MESH') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase('MESH', tc_name, cmds=pre_conditions, generic_wid_hdl=mesh_wid_hdl) for custom_tc in custom_test_cases + test_cases_lt2: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) if len(ptses) == 2: tc_list += test_cases_slaves pts2 = ptses[1] return tc_list
def test_cases(ptses): """Returns a list of GAP test cases ptses -- list of PyPTS instances""" pts = ptses[0] ad_str_manufacturer_data = str(format(AdType.manufacturer_data, 'x')).zfill(2) + \ iut_manufacturer_data ad_str_manufacturer_data_len = str(len(ad_str_manufacturer_data) / 2).zfill(2) ad_pixit = ad_str_manufacturer_data_len + ad_str_manufacturer_data pts_bd_addr = pts.q_bd_addr iut_device_name = get_unique_name(pts) stack = get_stack() pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.gap_reset), TestFunc(stack.gap_init, iut_device_name, iut_manufacturer_data, iut_appearance, iut_svc_data, iut_flags, iut_svcs), TestFunc(btp.gap_read_ctrl_info), TestFunc(btp.gap_set_bondable_on), TestFunc(lambda: pts.update_pixit_param("GAP", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_privacy_enabled", "TRUE" if stack.gap.iut_has_privacy() else "FALSE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_using_public_device_address", "FALSE" if stack.gap.iut_addr_is_random() else "TRUE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_using_private_device_address", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_device_name_in_adv_packet_for_random_address", iut_device_name)), TestFunc(lambda: pts.update_pixit_param("GAP", "TSPX_advertising_data", ad_pixit)), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_using_random_device_address", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), # We do this on test case, because previous one could # update this if RPA was used by PTS # TODO: Get PTS address type TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] custom_test_cases = [ BTestCase("GAP", "GAP/BROB/BCST/BV-03-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BROB/OBSV/BV-06-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase( "GAP", "GAP/IDLE/NAMP/BV-01-C", pre_conditions + [ TestFunc(btp.core_reg_svc_gatt), TestFunc( btp.gap_conn, pts_bd_addr, Addr.le_public, start_wid=78), TestFunc(btp.gattc_read_uuid, Addr.le_public, pts_bd_addr, '0001', 'FFFF', UUID.device_name, start_wid=73), TestFunc(btp.gattc_read_uuid_rsp, post_wid=73), TestFunc( btp.gap_disconn, pts_bd_addr, Addr.le_public, start_wid=77) ]), BTestCase("GAP", "GAP/CONN/UCON/BV-06-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BOND/NBON/BV-01-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BOND/NBON/BV-02-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BOND/NBON/BV-03-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BOND/BON/BV-01-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BOND/BON/BV-02-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BOND/BON/BV-03-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/BOND/BON/BV-04-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/AUT/BV-11-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/AUT/BV-12-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/AUT/BV-13-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/AUT/BV-14-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase( "GAP", "GAP/SEC/AUT/BV-17-C", cmds=pre_conditions + [ TestFunc(btp.core_reg_svc_gatt), TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_conn, start_wid=78), TestFunc(btp.gattc_read, Addr.le_public, pts_bd_addr, "0001", start_wid=112), # Bonding shall start automatically, so ignore wid: 108 # "Please start the Bonding Procedure..." # Await read response after bonding TestFunc(btp.gattc_read_rsp, store_val=False, post_wid=108), TestFunc(btp.gap_disconn, start_wid=44) ]), BTestCase("GAP", "GAP/SEC/AUT/BV-18-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), BTestCase( "GAP", "GAP/SEC/AUT/BV-19-C", cmds=pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_conn, start_wid=78), TestFunc(btp.gap_pair, start_wid=108, skip_call=(2, )), TestFunc(btp.gattc_read, Addr.le_public, pts_bd_addr, "0001", start_wid=112), TestFunc(btp.gattc_read_rsp, store_val=False, post_wid=112), TestFunc(btp.gap_disconn, start_wid=44) ]), BTestCase("GAP", "GAP/SEC/AUT/BV-20-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), # TODO: Inform about lost bond # BTestCase("GAP", "GAP/SEC/AUT/BV-22-C", # cmds=pre_conditions, # generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/AUT/BV-23-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/AUT/BV-24-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/CSIGN/BV-01-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/CSIGN/BV-02-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/CSIGN/BI-01-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), BTestCase( "GAP", "GAP/SEC/CSIGN/BI-02-C", edit1_wids={161: hdl_wid_161}, verify_wids={ 130: lambda x: (btp.gatts_verify_write_success(x) and btp .gatts_verify_write_success( x) and btp.gatts_verify_write_fail(x)) }, cmds=pre_conditions + init_gatt_db + [ TestFunc(btp.gap_set_io_cap, IOCap.no_input_output), TestFunc(btp.gap_set_conn), TestFunc(lambda: btp.gap_adv_ind_on(ad=get_stack().gap.ad, sd=get_stack().gap.sd)), TestFunc( btp.gap_disconn, pts_bd_addr, Addr.le_public, start_wid=77) ]), BTestCase("GAP", "GAP/SEC/CSIGN/BI-03-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/SEC/CSIGN/BI-04-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/PRIV/CONN/BV-10-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), BTestCase("GAP", "GAP/PRIV/CONN/BI-01-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), # GAP/GAT/BV-01-C # wid: 158 description: IUT support both Central and Peripheral roles. # Click Yes if IUT act as Central role to execute this test otherwise # click No to act as Peripheral role. # # Testing central role. BTestCase("GAP", "GAP/GAT/BV-01-C", cmds=pre_conditions + init_gatt_db, generic_wid_hdl=gap_wid_hdl), # Testing peripheral role. BTestCase( "GAP", "GAP/GAT/BV-01-C", # no_wid=158, cmds=pre_conditions + init_gatt_db, generic_wid_hdl=gap_wid_hdl), ] test_case_name_list = pts.get_test_case_list('GAP') tc_list = [] for tc_name in test_case_name_list: instance = BTestCase('GAP', tc_name, cmds=pre_conditions, generic_wid_hdl=gap_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def test_cases(ptses): """Returns a list of MMDL test cases ptses -- list of PyPTS instances""" pts = ptses[0] if 'MMDL' not in pts.get_project_list(): return [] stack = get_stack() device_uuid = hexlify(uuid4().bytes) device_uuid2 = hexlify(uuid4().bytes) out_actions = [defs.MESH_OUT_DISPLAY_NUMBER, defs.MESH_OUT_DISPLAY_STRING, defs.MESH_OUT_DISPLAY_NUMBER | defs.MESH_OUT_DISPLAY_STRING] in_actions = [defs.MESH_IN_ENTER_NUMBER, defs.MESH_IN_ENTER_STRING, defs.MESH_IN_ENTER_NUMBER | defs.MESH_IN_ENTER_STRING] oob = 16 * '00' out_size = random.randint(0, 2) rand_out_actions = random.choice(out_actions) if out_size else 0 in_size = random.randint(0, 2) rand_in_actions = random.choice(in_actions) if in_size else 0 crpl_size = 10 # Maximum capacity of the replay protection list auth_method = 0x00 iut_device_name = get_unique_name(pts) pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.core_reg_svc_mesh), TestFunc(btp.core_reg_svc_mmdl), TestFunc(btp.gap_read_ctrl_info), TestFunc(stack.gap_init, iut_device_name), TestFunc(stack.mesh_init, device_uuid, device_uuid2), TestFunc(lambda: stack.mesh.set_prov_data(oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size, auth_method)), TestFunc(lambda: pts.update_pixit_param( "MMDL", "TSPX_device_uuid", stack.mesh.get_dev_uuid())), TestFunc(lambda: pts.update_pixit_param( "MMDL", "TSPX_device_uuid2", stack.mesh.get_dev_uuid_lt2())), TestFunc(lambda: pts.update_pixit_param( "MMDL", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str()))] custom_test_cases = [] test_case_name_list = pts.get_test_case_list('MMDL') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase('MMDL', tc_name, cmds=pre_conditions, generic_wid_hdl=mmdl_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def set_pixits(ptses): """Setup GAP profile PIXITS for workspace. Those values are used for test case if not updated within test case. PIXITS always should be updated accordingly to project and newest version of PTS. ptses -- list of PyPTS instances""" pts = ptses[0] global iut_device_name iut_device_name = get_unique_name(pts) ad_str_flags = str(AdType.flags).zfill(2) + \ str(AdFlags.br_edr_not_supp).zfill(2) ad_str_flags_len = str(len(ad_str_flags) // 2).zfill(2) ad_str_name_short = str(AdType.name_short).zfill(2) + \ bytes.hex(iut_device_name) ad_str_name_short_len = format((len(ad_str_name_short) // 2), 'x').zfill(2) ad_pixit = ad_str_flags_len + ad_str_flags + ad_str_name_short_len + \ ad_str_name_short # Set GAP common PIXIT values pts.set_pixit("GAP", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts.set_pixit("GAP", "TSPX_bd_addr_PTS", "C000DEADBEEF") pts.set_pixit("GAP", "TSPX_broadcaster_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_observer_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_peripheral_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_central_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_security_enabled", "FALSE") pts.set_pixit("GAP", "TSPX_delete_link_key", "FALSE") pts.set_pixit("GAP", "TSPX_iut_setup_att_over_br_edr", "FALSE") pts.set_pixit("GAP", "TSPX_mtu_size", "23") pts.set_pixit("GAP", "TSPX_delete_ltk", "FALSE") pts.set_pixit("GAP", "TSPX_pin_code", "0000") pts.set_pixit("GAP", "TSPX_time_guard", "300000") pts.set_pixit("GAP", "TSPX_use_implicit_send", "TRUE") pts.set_pixit("GAP", "TSPX_use_dynamic_pin", "FALSE") pts.set_pixit("GAP", "TSPX_secure_simple_pairing_pass_key_confirmation", "FALSE") pts.set_pixit("GAP", "TSPX_using_public_device_address", "TRUE") pts.set_pixit("GAP", "TSPX_using_random_device_address", "FALSE") pts.set_pixit("GAP", "TSPX_lim_adv_timeout", "30720") pts.set_pixit("GAP", "TSPX_gen_disc_adv_min", "30720") pts.set_pixit("GAP", "TSPX_lim_disc_scan_min", "10240") pts.set_pixit("GAP", "TSPX_gen_disc_scan_min", "10240") pts.set_pixit("GAP", "TSPX_database_file", "Database-GAP.sig") pts.set_pixit("GAP", "TSPX_iut_rx_mtu", "23") pts.set_pixit("GAP", "TSPX_iut_private_address_interval", "30000") pts.set_pixit("GAP", "TSPX_iut_privacy_enabled", "FALSE") pts.set_pixit("GAP", "TSPX_psm", "1001") pts.set_pixit("GAP", "TSPX_psm_2", "2001") pts.set_pixit("GAP", "TSPX_iut_valid_connection_interval_min", "00C8") pts.set_pixit("GAP", "TSPX_iut_valid_connection_interval_max", "03C0") pts.set_pixit("GAP", "TSPX_iut_valid_connection_latency", "0006") pts.set_pixit("GAP", "TSPX_iut_valid_timeout_multiplier", "0962") pts.set_pixit("GAP", "TSPX_iut_connection_parameter_timeout", "30000") pts.set_pixit("GAP", "TSPX_iut_invalid_connection_interval_min", "0000") pts.set_pixit("GAP", "TSPX_iut_invalid_connection_interval_max", "0000") pts.set_pixit("GAP", "TSPX_iut_invalid_connection_latency", "0000") pts.set_pixit("GAP", "TSPX_iut_invalid_conn_update_supervision_timeout", "0800") pts.set_pixit("GAP", "TSPX_LE_scan_interval", "0010") pts.set_pixit("GAP", "TSPX_LE_scan_window", "0010") pts.set_pixit("GAP", "TSPX_con_interval_min", "0032") pts.set_pixit("GAP", "TSPX_con_interval_max", "0046") pts.set_pixit("GAP", "TSPX_con_latency", "0001") pts.set_pixit("GAP", "TSPX_supervision_timeout", "07D0") pts.set_pixit("GAP", "TSPX_minimum_ce_length", "0000") pts.set_pixit("GAP", "TSPX_maximum_ce_length", "0000") pts.set_pixit("GAP", "TSPX_conn_update_int_min", "0032") pts.set_pixit("GAP", "TSPX_conn_update_int_max", "0046") pts.set_pixit("GAP", "TSPX_conn_update_peripheral_latency", "0001") pts.set_pixit("GAP", "TSPX_conn_update_supervision_timeout", "01F4") pts.set_pixit("GAP", "TSPX_pairing_before_service_request", "FALSE") pts.set_pixit("GAP", "TSPX_iut_mandates_mitm", "FALSE") pts.set_pixit("GAP", "TSPX_encryption_before_service_request", "FALSE") pts.set_pixit("GAP", "TSPX_tester_appearance", "0000") pts.set_pixit("GAP", "TSPX_advertising_data", ad_pixit) pts.set_pixit("GAP", "TSPX_iut_device_IRK_for_resolvable_privacy_address_generation_procedure", "00000000000000000000000000000000") pts.set_pixit("GAP", "TSPX_tester_device_IRK_for_resolvable_privacy_address_generation_procedure", "0123456789ABCDEF0123456789ABCDEF") pts.set_pixit("GAP", "TSPX_iut_device_name_in_adv_packet_for_random_address", iut_device_name) pts.set_pixit("GAP", "TSPX_Tgap_104", "60000") pts.set_pixit("GAP", "TSPX_URI", "176769746875622e636f6d2f696e74656c2f6175746f2d707473") pts.set_pixit("GAP", "TSPX_periodic_advertising_data", "0201040503001801180D095054532D4741502D3036423803190000") pts.set_pixit("GAP", "TSPX_Min_Encryption_Key_Size", "07") pts.set_pixit("GAP", "TSPX_broadcast_code", "8ED03323D1205E2D58191BF6285C3182") pts.set_pixit("GAP", "TSPX_gap_iut_role", "Peripheral")
def test_cases(ptses): """Returns a list of GAP test cases ptses -- list of PyPTS instances""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr iut_device_name = get_unique_name(pts) ad_str_flags = str(AdType.flags).zfill(2) + \ str(AdFlags.br_edr_not_supp).zfill(2) ad_str_flags_len = str(len(ad_str_flags) // 2).zfill(2) ad_str_name = str(AdType.name_full).zfill(2) + \ bytes.hex(iut_device_name) ad_str_name_len = format((len(ad_str_name) // 2), 'x').zfill(2) ad_pixit = ad_str_flags_len + ad_str_flags + ad_str_name_len + ad_str_name stack = get_stack() pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(stack.gap_init, iut_device_name, iut_manufacturer_data, iut_appearance, iut_svc_data, iut_flags, iut_svcs), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("GAP", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param("GAP", "TSPX_delete_link_key", "TRUE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_privacy_enabled", "TRUE" if stack.gap.iut_has_privacy() else "FALSE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_using_public_device_address", "FALSE" if stack.gap.iut_addr_is_random() else "TRUE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_using_random_device_address", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_device_name_in_adv_packet_for_random_address", iut_device_name)), TestFunc(lambda: pts.update_pixit_param("GAP", "TSPX_advertising_data", ad_pixit)), TestFunc( lambda: pts.update_pixit_param("GAP", "TSPX_delete_ltk", "TRUE")), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_invalid_connection_interval_min", format(0x0c80, '04x'))), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_invalid_connection_interval_max", format(0x0c80, '04x'))), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_invalid_connection_latency", format( 0x0000, '04x'))), TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_iut_invalid_conn_update_supervision_timeout", format(0x0c80, '04x'))), TestFunc(btp.core_reg_svc_gatt), # We do this on test case, because previous one could update # this if RPA was used by PTS # TODO: Get PTS address type TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] custom_test_cases = [ ZTestCase("GAP", "GAP/BROB/BCST/BV-03-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BROB/OBSV/BV-06-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/IDLE/NAMP/BV-01-C", cmds=pre_conditions, generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/CONN/UCON/BV-06-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BOND/BON/BV-01-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BOND/BON/BV-03-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/BOND/BON/BV-04-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/CONN/PRDA/BV-02-C", cmds=pre_conditions + [TestFunc(btp.gap_pair, post_wid=108)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-11-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-12-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-13-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-14-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-18-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase( "GAP", "GAP/SEC/AUT/BV-19-C", cmds=pre_conditions + [ TestFunc(lambda: pts.update_pixit_param( "GAP", "TSPX_encryption_before_service_request", "TRUE")) ], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-20-C", cmds=pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gattc_read_rsp, store_val=False, post_wid=108, skip_call=(1, )) ], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-21-C", cmds=pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_pair, post_wid=108) ], generic_wid_hdl=gap_wid_hdl), # TODO: Inform about lost bond ZTestCase("GAP", "GAP/SEC/AUT/BV-22-C", cmds=pre_conditions, generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-23-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/AUT/BV-24-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/CSIGN/BV-01-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/CSIGN/BV-02-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/CSIGN/BI-01-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/CSIGN/BI-02-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/CSIGN/BI-03-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/CSIGN/BI-04-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-21-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-22-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl2), ZTestCase("GAP", "GAP/SEC/SEM/BV-23-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-24-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl2), ZTestCase("GAP", "GAP/SEC/SEM/BV-26-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-27-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl4), ZTestCase("GAP", "GAP/SEC/SEM/BV-28-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-29-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl4), ZTestCase("GAP", "GAP/SEC/SEM/BV-37-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-38-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-39-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl2), ZTestCase("GAP", "GAP/SEC/SEM/BV-40-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl4), ZTestCase("GAP", "GAP/SEC/SEM/BV-41-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-42-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BV-43-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl2), ZTestCase("GAP", "GAP/SEC/SEM/BV-44-C", cmds=pre_conditions + init_gatt_db + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl_mode1_lvl4), ZTestCase("GAP", "GAP/SEC/SEM/BI-09-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-10-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-20-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-21-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-22-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/SEC/SEM/BI-23-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/PRIV/CONN/BV-10-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), ZTestCase("GAP", "GAP/PRIV/CONN/BI-01-C", cmds=pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gap_wid_hdl), # GAP/GAT/BV-01-C # wid: 158 description: IUT support both Central and Peripheral roles. # Click Yes if IUT act as Central role to execute this test otherwise # click No to act as Peripheral role. # # Testing central role. ZTestCase("GAP", "GAP/GAT/BV-01-C", cmds=pre_conditions + init_gatt_db, generic_wid_hdl=gap_wid_hdl), # Testing peripheral role. ZTestCase( "GAP", "GAP/GAT/BV-01-C", # no_wid=158, cmds=pre_conditions + init_gatt_db, generic_wid_hdl=gap_wid_hdl), ] test_case_name_list = pts.get_test_case_list('GAP') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase('GAP', tc_name, cmds=pre_conditions, generic_wid_hdl=gap_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def set_pixits(ptses): """Setup MESH profile PIXITS for workspace. Those values are used for test case if not updated within test case. PIXITS always should be updated accordingly to project and newest version of PTS. ptses -- list of PyPTS instances""" pts = ptses[0] global iut_device_name iut_device_name = get_unique_name(pts) pts.set_pixit("MESH", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts.set_pixit("MESH", "TSPX_bd_addr_additional_whitelist", "") pts.set_pixit("MESH", "TSPX_time_guard", "300000") pts.set_pixit("MESH", "TSPX_use_implicit_send", "TRUE") pts.set_pixit( "MESH", "TSPX_tester_database_file", "C:\Program Files\Bluetooth SIG\Bluetooth PTS\Data\SIGDatabase\PTS_SMPP_db.xml" ) pts.set_pixit("MESH", "TSPX_mtu_size", "23") pts.set_pixit("MESH", "TSPX_delete_link_key", "TRUE") pts.set_pixit("MESH", "TSPX_delete_ltk", "TRUE") pts.set_pixit("MESH", "TSPX_security_enabled", "FALSE") pts.set_pixit("MESH", "TSPX_iut_setup_att_over_br_edr", "FALSE") pts.set_pixit("MESH", "TSPX_scan_interval", "30") pts.set_pixit("MESH", "TSPX_scan_window", "30") pts.set_pixit("MESH", "TSPX_scan_filter", "00") pts.set_pixit("MESH", "TSPX_advertising_interval_min", "160") pts.set_pixit("MESH", "TSPX_advertising_interval_max", "160") pts.set_pixit("MESH", "TSPX_tester_OOB_information", "F87F") pts.set_pixit("MESH", "TSPX_device_uuid", "001BDC0810210B0E0A0C000B0E0A0C00") pts.set_pixit("MESH", "TSPX_device_uuid2", "00000000000000000000000000000000") pts.set_pixit( "MESH", "TSPX_device_public_key", "F465E43FF23D3F1B9DC7DFC04DA8758184DBC966204796ECCF0D6CF5E16500CC0201D048BCBBD899EEEFC424164E33C201C2B010CA6B4D43A8A155CAD8ECB279" ) pts.set_pixit( "MESH", "TSPX_device_private_key", "529AA0670D72CD6497502ED473502B037E8803B5C60829A5A3CAA219505530BA") pts.set_pixit("MESH", "TSPX_use_pb_gatt_bearer", "FALSE") pts.set_pixit("MESH", "TSPX_iut_model_id_used", "0002") pts.set_pixit("MESH", "TSPX_OOB_code", "00000000000000000102030405060708") pts.set_pixit("MESH", "TSPX_subscription_address_list", "C302") pts.set_pixit("MESH", "TSPX_vendor_model_id", "05f11234") pts.set_pixit("MESH", "TSPX_maximum_network_message_cache_entries", "2") pts.set_pixit("MESH", "TSPX_health_valid_test_ids", "00") pts.set_pixit("MESH", "TSPX_iut_comp_data_page", "0") pts.set_pixit("MESH", "TSPX_netkeyindex_value", "0") pts.set_pixit("MESH", "TSPX_iut_supports_relay", "FALSE") pts.set_pixit("MESH", "TSPX_application_key", "3216D1509884B533248541792B877F98") pts.set_pixit("MESH", "TSPX_device_key", "00000000000000000000000000000000") pts.set_pixit("MESH", "TSPX_enable_IUT_provisioner", "FALSE") pts.set_pixit("MESH", "TSPX_maximum_number_of_supported_subnets", "1") pts.set_pixit("MESH", "TSPX_pt_addr", "0300") pts.set_pixit("MESH", "TSPX_pt2_addr", "0310") pts.set_pixit("MESH", "TSPX_po_addr", "0200") pts.set_pixit("MESH", "TSPX_po2_addr", "0210") pts.set_pixit("MESH", "TSPX_oob_certificates", "") pts.set_pixit("MESH", "TSPX_number_of_intermediate_certificates_on_iut", "") pts.set_pixit("MESH", "TSPX_Max_Number_Of_Paths", "1") pts.set_pixit("MESH", "Max_Number_Of_Dependent_Nodes_Per_Path", "1") pts.set_pixit("MESH", "TSPX_iut_model_id_publish_not_supported", "0000") pts.set_pixit("MESH", "TSPX_mdf_label_uuid_for_virtual_address", "112233445566778899AABBCCDDEEFFEE") if len(ptses) < 2: return pts2 = ptses[1] # PTS2 pts2.set_pixit("MESH", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts2.set_pixit("MESH", "TSPX_bd_addr_additional_whitelist", "") pts2.set_pixit("MESH", "TSPX_time_guard", "300000") pts2.set_pixit("MESH", "TSPX_use_implicit_send", "TRUE") pts2.set_pixit( "MESH", "TSPX_tester_database_file", "C:\Program Files\Bluetooth SIG\Bluetooth PTS\Data\SIGDatabase\PTS_SMPP_db.xml" ) pts2.set_pixit("MESH", "TSPX_mtu_size", "23") pts2.set_pixit("MESH", "TSPX_delete_link_key", "TRUE") pts2.set_pixit("MESH", "TSPX_delete_ltk", "TRUE") pts2.set_pixit("MESH", "TSPX_security_enabled", "FALSE") pts2.set_pixit("MESH", "TSPX_iut_setup_att_over_br_edr", "FALSE") pts2.set_pixit("MESH", "TSPX_scan_interval", "30") pts2.set_pixit("MESH", "TSPX_scan_window", "30") pts2.set_pixit("MESH", "TSPX_scan_filter", "00") pts2.set_pixit("MESH", "TSPX_advertising_interval_min", "160") pts2.set_pixit("MESH", "TSPX_advertising_interval_max", "160") pts2.set_pixit("MESH", "TSPX_tester_OOB_information", "F87F") pts2.set_pixit("MESH", "TSPX_device_uuid", "00000000000000000000000000000000") pts2.set_pixit("MESH", "TSPX_device_uuid2", "001BDC0810210B0E0A0C000B0E0A0C00") pts2.set_pixit( "MESH", "TSPX_device_public_key", "F465E43FF23D3F1B9DC7DFC04DA8758184DBC966204796ECCF0D6CF5E16500CC0201D048BCBBD899EEEFC424164E33C201C2B010CA6B4D43A8A155CAD8ECB279" ) pts2.set_pixit( "MESH", "TSPX_device_private_key", "529AA0670D72CD6497502ED473502B037E8803B5C60829A5A3CAA219505530BA") pts2.set_pixit("MESH", "TSPX_use_pb_gatt_bearer", "FALSE") pts2.set_pixit("MESH", "TSPX_iut_model_id_used", "0002") pts2.set_pixit("MESH", "TSPX_OOB_code", "00000000000000000102030405060708") pts2.set_pixit("MESH", "TSPX_subscription_address_list", "C302") pts2.set_pixit("MESH", "TSPX_vendor_model_id", "00000000") pts2.set_pixit("MESH", "TSPX_maximum_network_message_cache_entries", "2") pts2.set_pixit("MESH", "TSPX_health_valid_test_ids", "00") pts2.set_pixit("MESH", "TSPX_iut_comp_data_page", "0") pts2.set_pixit("MESH", "TSPX_netkeyindex_value", "0") pts2.set_pixit("MESH", "TSPX_iut_supports_relay", "FALSE") pts2.set_pixit("MESH", "TSPX_application_key", "3216D1509884B533248541792B877F98") pts2.set_pixit("MESH", "TSPX_device_key", "00000000000000000000000000000000") pts2.set_pixit("MESH", "TSPX_enable_IUT_provisioner", "FALSE") pts2.set_pixit("MESH", "TSPX_maximum_number_of_supported_subnets", "1") pts.set_pixit("MESH", "TSPX_pt_addr", "0300") pts.set_pixit("MESH", "TSPX_pt2_addr", "0310") pts.set_pixit("MESH", "TSPX_po_addr", "0200") pts.set_pixit("MESH", "TSPX_po2_addr", "0210") pts.set_pixit("MESH", "TSPX_oob_certificates", "") pts.set_pixit("MESH", "TSPX_number_of_intermediate_certificates_on_iut", "") pts.set_pixit("MESH", "TSPX_Max_Number_Of_Paths", "1") pts.set_pixit("MESH", "Max_Number_Of_Dependent_Nodes_Per_Path", "1") pts.set_pixit("MESH", "TSPX_iut_model_id_publish_not_supported", "0000") pts.set_pixit("MESH", "TSPX_mdf_label_uuid_for_virtual_address", "112233445566778899AABBCCDDEEFFEE")
def test_cases(ptses): """Returns a list of SM test cases ptses -- list of PyPTS instances""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr iut_device_name = get_unique_name(pts) stack = get_stack() stack.gap_init() pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(stack.gap_init, iut_device_name), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("SM", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "SM", "TSPX_iut_device_name_in_adv_packet_for_random_address", iut_device_name)), TestFunc(lambda: pts.update_pixit_param("SM", "TSPX_OOB_Data", stack. gap.oob_legacy)), TestFunc(lambda: pts.update_pixit_param( "SM", "TSPX_Bonding_Flags", "01" if stack.gap.current_settings_get('Bondable') else "00")), # FIXME Find better place to store PTS bdaddr TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] custom_test_cases = [ ZTestCase("SM", "SM/CEN/PROT/BV-01-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/PROT/BV-02-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/JW/BV-02-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/JW/BI-02-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/JW/BI-03-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/PKE/BV-01-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_set_mitm_off), TestFunc(btp.gap_set_bondable_off) ], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/CEN/OOB/BV-01-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/CEN/OOB/BV-03-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/OOB/BV-05-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/OOB/BV-07-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/CEN/OOB/BV-09-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/CEN/OOB/BI-01-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/PER/OOB/BV-02-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/PER/OOB/BV-04-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/OOB/BV-06-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/OOB/BV-08-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/PER/OOB/BV-10-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase( "SM", "SM/PER/OOB/BI-02-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_oob_legacy_set_data, stack.gap.oob_legacy) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/SIP/BV-01-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.keyboard_display)], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/SIP/BV-02-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.keyboard_display), TestFunc(btp.gap_set_mitm_off) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/SIE/BV-01-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.no_input_output)], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/SCJW/BV-01-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_set_mitm_off), TestFunc(btp.gap_set_bondable_off) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/SCPK/BV-01-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_set_mitm_off), TestFunc(btp.gap_set_bondable_off) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/SCPK/BI-02-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_set_bondable_on) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/SCJW/BV-02-C", pre_conditions + [ TestFunc(btp.gap_set_io_cap, IOCap.display_only), TestFunc(btp.gap_set_mitm_off), TestFunc(btp.gap_set_bondable_off) ], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/SCPK/BI-04-C", pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.keyboard_only)], generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/CEN/SCOB/BV-04-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), ZTestCase("SM", "SM/PER/SCOB/BV-03-C", pre_conditions, generic_wid_hdl=sm_wid_hdl), ] test_case_name_list = pts.get_test_case_list('SM') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase( 'SM', tc_name, pre_conditions + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=sm_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list
def set_pixits(ptses): """Setup SM profile PIXITS for workspace. Those values are used for test case if not updated within test case. PIXITS always should be updated accordingly to project and newest version of PTS. ptses -- list of PyPTS instances""" pts = ptses[0] global iut_device_name iut_device_name = get_unique_name(pts) pts.set_pixit("SM", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts.set_pixit("SM", "TSPX_SMP_pin_code", "111111") pts.set_pixit("SM", "TSPX_OOB_Data", "0000000000000000FE12036E5A889F4D") pts.set_pixit("SM", "TSPX_peer_addr_type", "00") pts.set_pixit("SM", "TSPX_own_addr_type", "00") pts.set_pixit("SM", "TSPX_conn_interval_min", "0190") pts.set_pixit("SM", "TSPX_conn_interval_max", "0190") pts.set_pixit("SM", "TSPX_conn_latency", "0000") pts.set_pixit("SM", "TSPX_client_class_of_device", "100104") pts.set_pixit("SM", "TSPX_server_class_of_device", "100104") pts.set_pixit("SM", "TSPX_security_enabled", "TRUE") pts.set_pixit("SM", "TSPX_delete_link_key", "TRUE") pts.set_pixit("SM", "TSPX_pin_code", "1234") pts.set_pixit("SM", "TSPX_ATTR_HANDLE", "0000") pts.set_pixit("SM", "TSPX_ATTR_VALUE", "0000000000000000") pts.set_pixit("SM", "TSPX_delay_variation_in", "FFFFFFFF") pts.set_pixit("SM", "TSPX_delay_variation_out", "FFFFFFFF") pts.set_pixit("SM", "TSPX_flushto", "FFFF") pts.set_pixit("SM", "TSPX_inmtu", "02A0") pts.set_pixit("SM", "TSPX_inquiry_length", "17") pts.set_pixit("SM", "TSPX_latency_in", "FFFFFFFF") pts.set_pixit("SM", "TSPX_latency_out", "FFFFFFFF") pts.set_pixit("SM", "TSPX_linkto", "3000") pts.set_pixit("SM", "TSPX_max_nbr_retransmissions", "10") pts.set_pixit("SM", "TSPX_no_fail_verdicts", "FALSE") pts.set_pixit("SM", "TSPX_outmtu", "02A0") pts.set_pixit("SM", "TSPX_tester_role_optional", "L2CAP_ROLE_INITIATOR") pts.set_pixit("SM", "TSPX_page_scan_mode", "00") pts.set_pixit("SM", "TSPX_page_scan_repetition_mode", "00") pts.set_pixit("SM", "TSPX_peak_bandwidth_in", "00000000") pts.set_pixit("SM", "TSPX_peak_bandwidth_out", "00000000") pts.set_pixit("SM", "TSPX_psm", "0011") pts.set_pixit("SM", "TSPX_service_type_in", "01") pts.set_pixit("SM", "TSPX_service_type_out", "01") pts.set_pixit("SM", "TSPX_support_retransmissions", "TRUE") pts.set_pixit("SM", "TSPX_time_guard", "180000") pts.set_pixit("SM", "TSPX_timer_ertx", "120000") pts.set_pixit("SM", "TSPX_timer_ertx_max", "300000") pts.set_pixit("SM", "TSPX_timer_ertx_min", "60000") pts.set_pixit("SM", "TSPX_timer_rtx", "10000") pts.set_pixit("SM", "TSPX_timer_rtx_max", "60000") pts.set_pixit("SM", "TSPX_timer_rtx_min", "1000") pts.set_pixit("SM", "TSPX_token_bucket_size_in", "00000000") pts.set_pixit("SM", "TSPX_token_bucket_size_out", "00000000") pts.set_pixit("SM", "TSPX_token_rate_in", "00000000") pts.set_pixit("SM", "TSPX_token_rate_out", "00000000") pts.set_pixit("SM", "TSPX_rfc_mode_mode", "03") pts.set_pixit("SM", "TSPX_rfc_mode_tx_window_size", "08") pts.set_pixit("SM", "TSPX_rfc_mode_max_transmit", "03") pts.set_pixit("SM", "TSPX_rfc_mode_retransmission_timeout", "07D0") pts.set_pixit("SM", "TSPX_rfc_mode_monitor_timeout", "2EE0") pts.set_pixit("SM", "TSPX_rfc_mode_maximum_pdu_size", "02A0") pts.set_pixit("SM", "TSPX_extended_window_size", "0012") pts.set_pixit("SM", "TSPX_use_implicit_send", "TRUE") pts.set_pixit("SM", "TSPX_use_dynamic_pin", "FALSE") pts.set_pixit("SM", "TSPX_iut_SDU_size_in_bytes", "144") pts.set_pixit("SM", "TSPX_secure_simple_pairing_pass_key_confirmation", "FALSE") pts.set_pixit("SM", "TSPX_Min_Encryption_Key_Length", "07") pts.set_pixit("SM", "TSPX_Bonding_Flags", "00") pts.set_pixit("SM", "TSPX_delete_ltk", "FALSE") pts.set_pixit("SM", "TSPX_mtu_size", "23") pts.set_pixit("SM", "TSPX_new_key_failed_count", "0")
def test_cases(ptses): """Returns a list of MESH test cases ptses -- list of PyPTS instances""" pts = ptses[0] iut_device_name = get_unique_name(pts) stack = get_stack() device_uuid = hexlify(uuid4().bytes) device_uuid2 = hexlify(uuid4().bytes) out_actions = [ defs.MESH_OUT_DISPLAY_NUMBER, defs.MESH_OUT_DISPLAY_STRING, defs.MESH_OUT_DISPLAY_NUMBER | defs.MESH_OUT_DISPLAY_STRING ] in_actions = [ defs.MESH_IN_ENTER_NUMBER, defs.MESH_IN_ENTER_STRING, defs.MESH_IN_ENTER_NUMBER | defs.MESH_IN_ENTER_STRING ] oob = 16 * '00' out_size = random.randint(0, 2) rand_out_actions = random.choice(out_actions) if out_size else 0 in_size = random.randint(0, 2) rand_in_actions = random.choice(in_actions) if in_size else 0 crpl_size = 10 # Maximum capacity of the replay protection list stack.gap_init(iut_device_name) stack.mesh_init(device_uuid, oob, out_size, rand_out_actions, in_size, rand_in_actions, crpl_size) common_pre_conditions = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.core_reg_svc_mesh), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("MESH", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_maximum_network_message_cache_entries", "10")), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_maximum_number_of_supported_subnets", "2")), TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_subscription_address_list", MeshVals. subscription_addr_list1)), TestFunc(lambda: pts.update_pixit_param("MESH", "TSPX_OOB_code", oob)), ] pre_conditions = common_pre_conditions + [ TestFunc(lambda: pts.update_pixit_param("MESH", "TSPX_device_uuid", stack.mesh.dev_uuid)), TestFunc(lambda: pts.update_pixit_param("MESH", "TSPX_device_uuid2", device_uuid2)), ] pre_conditions_slave = [ TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts2.update_pixit_param("MESH", "TSPX_device_uuid", device_uuid2)), TestFunc(lambda: pts2.update_pixit_param("MESH", "TSPX_device_uuid2", stack.mesh.dev_uuid)), TestFunc( lambda: pts2.update_pixit_param("MESH", "TSPX_OOB_code", oob)), ] # Some test cases require device_uuid and device_uuid2 to be swapped pre_conditions_lt2 = common_pre_conditions + [ TestFunc(lambda: pts.update_pixit_param("MESH", "TSPX_device_uuid", device_uuid2)), TestFunc(lambda: pts.update_pixit_param("MESH", "TSPX_device_uuid2", stack.mesh.dev_uuid)), ] pre_conditions_lt2_slave = [ TestFunc(lambda: pts2.update_pixit_param( "MESH", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts2.update_pixit_param("MESH", "TSPX_device_uuid", stack.mesh.dev_uuid)), TestFunc(lambda: pts2.update_pixit_param("MESH", "TSPX_device_uuid2", device_uuid2)), TestFunc( lambda: pts2.update_pixit_param("MESH", "TSPX_OOB_code", oob)), ] custom_test_cases = [ ZTestCase("MESH", "MESH/NODE/CFG/CFGR/BV-01-C", cmds=pre_conditions + [ TestFunc(lambda: pts.update_pixit_param( "MESH", "TSPX_iut_supports_relay", "TRUE")) ], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/IVU/BV-03-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/IVU/BV-04-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/IVU/BV-05-C", cmds=pre_conditions + [TestFunc(btp.mesh_iv_test_mode_autoinit)], generic_wid_hdl=mesh_wid_hdl), ZTestCase( "MESH", "MESH/NODE/PROV/BV-01-C", cmds=pre_conditions + [ TestFunc(stack.mesh_init, device_uuid, oob, random.randint( 1, 2), random.choice(out_actions), in_size, rand_in_actions, crpl_size) ], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/TNPT/BV-06-C", cmds=pre_conditions + [TestFunc(btp.mesh_store_net_data)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/TNPT/BV-07-C", cmds=pre_conditions + [TestFunc(btp.mesh_store_net_data)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/NODE/TNPT/BV-08-C", cmds=pre_conditions + [TestFunc(btp.mesh_store_net_data)], generic_wid_hdl=mesh_wid_hdl), ZTestCase("MESH", "MESH/SR/MPXS/BV-09-C", cmds=pre_conditions + [TestFunc(lambda: get_stack().mesh.proxy_identity_enable())], generic_wid_hdl=mesh_wid_hdl), ] test_cases_lt2 = [ ZTestCase("MESH", "MESH/SR/PROX/BI-01-C", cmds=pre_conditions, generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BI-01-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-02-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-02-C", 361), SynchPoint("MESH/SR/PROX/BV-02-C-LT2", 17) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-02-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-03-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-03-C", 361), SynchPoint("MESH/SR/PROX/BV-03-C-LT2", 17) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-03-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-04-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-04-C", 367), SynchPoint("MESH/SR/PROX/BV-04-C-LT2", 362) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-04-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-05-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-05-C", 367), SynchPoint("MESH/SR/PROX/BV-05-C-LT2", 362) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-05-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-06-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-06-C", 361), SynchPoint("MESH/SR/PROX/BV-06-C-LT2", 17) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-06-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-08-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-08-C", 353), SynchPoint("MESH/SR/PROX/BV-08-C-LT2", 17) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-08-C", 354), SynchPoint("MESH/SR/PROX/BV-08-C-LT2", 17) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-08-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-09-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-09-C", 361), SynchPoint("MESH/SR/PROX/BV-09-C-LT2", 17) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-09-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-10-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-10-C", 361), SynchPoint("MESH/SR/PROX/BV-10-C-LT2", 17) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-10-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-12-C", cmds=pre_conditions + [ TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-12-C", 364), SynchPoint("MESH/SR/PROX/BV-12-C-LT2", 366) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-12-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-13-C", cmds=pre_conditions + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-13-C-LT2", 94, delay=5), SynchPoint("MESH/SR/PROX/BV-13-C", 17, delay=20) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-13-C-LT2"), ZTestCase("MESH", "MESH/SR/PROX/BV-14-C", cmds=pre_conditions + [ TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-14-C", 355), SynchPoint("MESH/SR/PROX/BV-14-C-LT2", 356) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/PROX/BV-14-C", 357), SynchPoint("MESH/SR/PROX/BV-14-C-LT2", 358) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/PROX/BV-14-C-LT2"), ZTestCase("MESH", "MESH/SR/MPXS/BV-08-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/SR/MPXS/BV-08-C", 12), SynchPoint("MESH/SR/MPXS/BV-08-C-LT2", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/SR/MPXS/BV-08-C-LT2"), ZTestCase( "MESH", "MESH/NODE/CFG/HBP/BV-05-C", cmds=pre_conditions_lt2 + [ TestFunc(lambda: btp.mesh_lpn(True)), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/CFG/HBP/BV-05-C", 332), SynchPoint("MESH/NODE/CFG/HBP/BV-05-C-LT2", 563, delay=5) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/CFG/HBP/BV-05-C", 333), SynchPoint("MESH/NODE/CFG/HBP/BV-05-C-LT2", 560) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/CFG/HBP/BV-05-C", 303), SynchPoint("MESH/NODE/CFG/HBP/BV-05-C-LT2", 561, delay=5) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/CFG/HBP/BV-05-C", 332), SynchPoint("MESH/NODE/CFG/HBP/BV-05-C-LT2", 564, delay=5) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/CFG/HBP/BV-05-C", 333), SynchPoint("MESH/NODE/CFG/HBP/BV-05-C-LT2", 562) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/CFG/HBP/BV-05-C-LT2"), ZTestCase("MESH", "MESH/NODE/CFG/HBS/BV-05-C", cmds=pre_conditions_lt2, generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/CFG/HBS/BV-05-C-LT2"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BI-01-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BI-01-C", 6), SynchPoint("MESH/NODE/FRND/TWO_NODES_PROVISIONER", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/TWO_NODES_PROVISIONER"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BI-02-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BI-02-C", 6), SynchPoint("MESH/NODE/FRND/TWO_NODES_PROVISIONER", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/TWO_NODES_PROVISIONER"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BI-03-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BI-03-C", 6), SynchPoint("MESH/NODE/FRND/TWO_NODES_PROVISIONER", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/TWO_NODES_PROVISIONER"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BV-01-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-01-C", 6), SynchPoint("MESH/NODE/FRND/TWO_NODES_PROVISIONER", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/TWO_NODES_PROVISIONER"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BV-02-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-02-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-02-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-02-C-LT2", 342, delay=10) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-02-C-LT2", 319, delay=15), SynchPoint("MESH/NODE/FRND/FN/BV-02-C", 302) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-02-C-LT2", 319, delay=15), SynchPoint("MESH/NODE/FRND/FN/BV-02-C", 302) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-02-C-LT2", 319, delay=15), SynchPoint("MESH/NODE/FRND/FN/BV-02-C", 302) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-02-C-LT2", 319, delay=15), SynchPoint("MESH/NODE/FRND/FN/BV-02-C", 302) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-02-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-03-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-03-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-03-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-03-C-LT2", 319), SynchPoint("MESH/NODE/FRND/FN/BV-03-C", 302, delay=5) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-03-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-04-C", cmds=pre_conditions_lt2 + [ TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-04-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-04-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-04-C-LT2", 311), SynchPoint("MESH/NODE/FRND/FN/BV-04-C", 305, delay=5) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-04-C-LT2", 255), SynchPoint("MESH/NODE/FRND/FN/BV-04-C", 305, delay=5) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-04-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-05-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-05-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-05-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-05-C-LT2", 342), SynchPoint("MESH/NODE/FRND/FN/BV-05-C", 302, delay=2) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-05-C-LT2", 344), SynchPoint("MESH/NODE/FRND/FN/BV-05-C", 302, delay=2) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-05-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-06-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-06-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-06-C-LT2", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-06-C-LT2"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BV-07-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-07-C", 6), SynchPoint("MESH/NODE/FRND/TWO_NODES_PROVISIONER", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/TWO_NODES_PROVISIONER"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BV-08-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-08-C-LT2", 15), SynchPoint("MESH/NODE/FRND/FN/BV-08-C", 337, 1) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-08-C-LT2", 319, delay=1), SynchPoint("MESH/NODE/FRND/FN/BV-08-C", 302, 30) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-08-C-LT2", 319, delay=2), SynchPoint("MESH/NODE/FRND/FN/BV-08-C", 302, 30) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-08-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-09-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-09-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-09-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-09-C", 310), SynchPoint("MESH/NODE/FRND/FN/BV-09-C-LT2", 319) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-09-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-10-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-10-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-10-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-10-C-LT2", 319), SynchPoint("MESH/NODE/FRND/FN/BV-10-C", 341, delay=5) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-10-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-11-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-11-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-11-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-11-C-LT2", 324), SynchPoint("MESH/NODE/FRND/FN/BV-11-C", 337) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-11-C-LT2"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BV-12-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-12-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-12-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-12-C-LT2", 330), SynchPoint("MESH/NODE/FRND/FN/BV-12-C", 335, delay=10) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-12-C-LT2"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BV-13-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-13-C", 6), SynchPoint("MESH/NODE/FRND/TWO_NODES_PROVISIONER", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/TWO_NODES_PROVISIONER"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-14-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-14-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-14-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-14-C", 339), SynchPoint("MESH/NODE/FRND/FN/BV-14-C-LT2", 283) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-14-C", 339), SynchPoint("MESH/NODE/FRND/FN/BV-14-C-LT2", 282) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-14-C", 339), SynchPoint("MESH/NODE/FRND/FN/BV-14-C-LT2", 339) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-14-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-15-C", cmds=pre_conditions_lt2 + [ TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-15-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-15-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-15-C", 339), SynchPoint("MESH/NODE/FRND/FN/BV-15-C-LT2", 283) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-15-C", 339), SynchPoint("MESH/NODE/FRND/FN/BV-15-C-LT2", 282) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-15-C", 339), SynchPoint("MESH/NODE/FRND/FN/BV-15-C-LT2", 339) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-15-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-16-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-16-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-16-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-16-C-LT2", 319), SynchPoint("MESH/NODE/FRND/FN/BV-16-C", 302, delay=5) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-16-C-LT2", 319), SynchPoint("MESH/NODE/FRND/FN/BV-16-C", 302, delay=5) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-16-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-17-C", cmds=pre_conditions_lt2 + [ TestFunc(sleep, 10, start_wid=318), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-17-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-17-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-17-C-LT2", 319), SynchPoint("MESH/NODE/FRND/FN/BV-17-C", 302, delay=5) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-17-C-LT2", 318), SynchPoint("MESH/NODE/FRND/FN/BV-17-C", 302, delay=5) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-17-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-18-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-18-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-18-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-18-C-LT2", 317), SynchPoint("MESH/NODE/FRND/FN/BV-18-C", 302, delay=2) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-18-C-LT2"), ZTestCase( "MESH", "MESH/NODE/FRND/FN/BV-19-C", cmds=pre_conditions_lt2 + [ TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-19-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-19-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-19-C", 302), SynchPoint("MESH/NODE/FRND/FN/BV-19-C-LT2", 318, delay=10) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-19-C", 302), SynchPoint("MESH/NODE/FRND/FN/BV-19-C-LT2", 318, delay=10) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-19-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-20-C", cmds=pre_conditions_lt2 + [ TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-20-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-20-C-LT2", 13) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-20-C-LT2", 267), SynchPoint("MESH/NODE/FRND/FN/BV-20-C", 348, delay=5) ]), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-20-C-LT2", 311), SynchPoint("MESH/NODE/FRND/FN/BV-20-C", 345, delay=5) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-20-C-LT2"), ZTestCase("MESH", "MESH/NODE/FRND/FN/BV-21-C", cmds=pre_conditions_lt2 + [ TestFunc(btp.mesh_iv_test_mode_autoinit), TestFunc(get_stack().synch.add_synch_element, [ SynchPoint("MESH/NODE/FRND/FN/BV-21-C", 6), SynchPoint("MESH/NODE/FRND/FN/BV-21-C-LT2", 13) ]) ], generic_wid_hdl=mesh_wid_hdl, lt2="MESH/NODE/FRND/FN/BV-21-C-LT2"), ] test_cases_slaves = [ ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-02-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-03-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-04-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-05-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-06-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-08-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-09-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-10-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-12-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-13-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BV-14-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/PROX/BI-01-C-LT2", cmds=pre_conditions_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/SR/MPXS/BV-08-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/CFG/HBP/BV-05-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/CFG/HBS/BV-05-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-02-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-03-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-04-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-05-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-06-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-08-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-09-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-10-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-11-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-12-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-14-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-15-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-16-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-17-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-18-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-19-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-20-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/FN/BV-21-C-LT2", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ZTestCaseSlave("MESH", "MESH/NODE/FRND/TWO_NODES_PROVISIONER", cmds=pre_conditions_lt2_slave, generic_wid_hdl=mesh_wid_hdl), ] test_case_name_list = pts.get_test_case_list('MESH') tc_list = [] for tc_name in test_case_name_list: instance = ZTestCase('MESH', tc_name, cmds=pre_conditions, generic_wid_hdl=mesh_wid_hdl) for custom_tc in custom_test_cases + test_cases_lt2: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) if len(ptses) == 2: tc_list += test_cases_slaves pts2 = ptses[1] return tc_list
def test_cases_server(ptses): """Returns a list of GATT Server test cases""" pts = ptses[0] iut_device_name = get_unique_name(pts) stack = get_stack() pre_conditions = [TestFunc(btp.core_reg_svc_gap), TestFunc(stack.gap_init, iut_device_name), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param( "GATT", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "GATT", "TSPX_iut_use_dynamic_bd_addr", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), TestFunc(btp.core_reg_svc_gatt), TestFunc(btp.gap_set_conn), TestFunc(btp.gap_set_gendiscov), TestFunc(stack.gatt_init)] pre_conditions_1 = [TestFunc(btp.core_reg_svc_gap), TestFunc(stack.gap_init, iut_device_name), TestFunc(btp.core_reg_svc_gatt), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param( "GATT", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param( "GATT", "TSPX_iut_use_dynamic_bd_addr", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), TestFunc(stack.gatt_init)] init_server_1 = [TestFunc(btp.gatts_add_svc, 0, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read, Perm.read, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.eight_bytes_1 * 10), TestFunc(btp.gatts_add_desc, 0, Perm.read | Perm.write, UUID.VND16_3), TestFunc(btp.gatts_set_val, 0, Value.long_4), TestFunc(btp.gatts_start_server)] init_server_2 = [TestFunc(btp.gatts_add_svc, 0, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write_wo_resp | Prop.auth_swrite, Perm.read | Perm.write, UUID.VND128_1), TestFunc(btp.gatts_set_val, 0, Value.one_byte), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write | Prop.nofity | Prop.indicate, Perm.read | Perm.write, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.eight_bytes_1), TestFunc(btp.gatts_add_desc, 0, Perm.read | Perm.write, UUID.CCC), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_authz, UUID.VND128_2), TestFunc(btp.gatts_set_val, 0, Value.one_byte), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_authn, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.one_byte), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_enc, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.two_bytes), TestFunc(btp.gatts_set_enc_key_size, 0, 0x0f), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write, UUID.VND16_4), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_authz, UUID.VND16_3), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_authn, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_enc, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_set_enc_key_size, 0, 0x0f), TestFunc(btp.gatts_start_server)] init_server_3 = [TestFunc(btp.gatts_add_svc, 1, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read, Perm.read, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, '1234'), TestFunc(btp.gatts_add_svc, 0, UUID.VND16_3), TestFunc(btp.gatts_add_inc_svc, 1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write | Prop.ext_prop, Perm.read | Perm.write, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, '1234'), TestFunc(btp.gatts_add_desc, 0, Perm.read, UUID.CEP), TestFunc(btp.gatts_set_val, 0, '0100'), TestFunc(btp.gatts_add_char, 0, Prop.read, Perm.read, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, '1234'), TestFunc(btp.gatts_add_desc, 0, Perm.read, UUID.CUD), TestFunc(btp.gatts_set_val, 0, '73616d706c652074657874'), TestFunc(btp.gatts_add_desc, 0, Perm.read | Perm.write_authz | Perm.write_authn, UUID.SCC), TestFunc(btp.gatts_set_val, 0, '0000'), TestFunc(btp.gatts_add_char, 0, Prop.read, Perm.read, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, '0000'), TestFunc(btp.gatts_add_desc, 0, Perm.read, UUID.CPF), TestFunc(btp.gatts_set_val, 0, '0600A327010100'), TestFunc(btp.gatts_start_server), TestFunc(btp.gap_adv_ind_on, start_wid=1)] init_server_5 = [TestFunc(btp.gatts_add_svc, 0, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_authn, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.long_4), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write, UUID.VND16_3), TestFunc(btp.gatts_set_val, 0, Value.long_3), TestFunc(btp.gatts_add_desc, 0, Perm.read | Perm.write, UUID.VND16_4), TestFunc(btp.gatts_set_val, 0, Value.long_4), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_authz, UUID.VND16_5), TestFunc(btp.gatts_set_val, 0, Value.long_4), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write_enc, UUID.VND16_5), TestFunc(btp.gatts_set_val, 0, Value.long_4), TestFunc(btp.gatts_set_enc_key_size, 0, 0x0f), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write, UUID.VND16_6), TestFunc(btp.gatts_set_val, 0, Value.long_4), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write, UUID.VND16_7), TestFunc(btp.gatts_set_val, 0, Value.long_5), TestFunc(btp.gatts_start_server)] init_server_6 = [TestFunc(btp.gatts_add_svc, 0, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write, UUID.VND16_1), TestFunc(btp.gatts_set_val, 0, Value.long_5), TestFunc(btp.gatts_start_server)] init_server_7 = [TestFunc(btp.gatts_add_svc, 0, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write_wo_resp | Prop.auth_swrite, Perm.read | Perm.write, UUID.VND128_1), TestFunc(btp.gatts_set_val, 0, Value.one_byte), TestFunc(btp.gatts_start_server)] init_server_8 = [TestFunc(btp.gatts_add_svc, 0, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read | Perm.write, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, Value.long_4), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read_authz | Perm.write_authz, UUID.VND16_3), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read_authn | Perm.write_authn, UUID.VND16_4), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read_enc | Perm.write_enc, UUID.VND16_5), TestFunc(btp.gatts_set_val, 0, Value.long_1), TestFunc(btp.gatts_set_enc_key_size, 0, 0x0f), TestFunc(btp.gatts_start_server)] custom_test_cases = [ ZTestCase("GATT", "GATT/SR/GAC/BV-01-C", pre_conditions_1 + init_server_1, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-03-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-04-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-05-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-09-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-10-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-11-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BV-04-C", pre_conditions_1 + init_server_1, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-13-C", pre_conditions_1 + init_server_1, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-15-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-16-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-17-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-20-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-21-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-22-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-40-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-42-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BI-44-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BV-07-C", pre_conditions_1 + init_server_1, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAR/BV-08-C", pre_conditions_1 + init_server_1, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-01-C", pre_conditions_1 + init_server_7, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-02-C", pre_conditions_1 + init_server_7, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-01-C", pre_conditions_1 + init_server_7, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-03-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-02-C", pre_conditions_1 + init_server_1, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-03-C", pre_conditions_1 + init_server_1, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-04-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-05-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-06-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-05-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-07-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-08-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-09-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-11-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-12-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-13-C", pre_conditions_1 + init_server_8, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-38-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-06-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-10-C", pre_conditions_1 + init_server_5, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-11-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-12-C", pre_conditions_1 + init_server_5, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-13-C", pre_conditions_1 + init_server_5, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-14-C", pre_conditions_1 + init_server_6, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GPM/BV-05-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-07-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-08-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BV-09-C", pre_conditions_1 + init_server_5, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-32-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAW/BI-33-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAN/BV-01-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAI/BV-01-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAI/BI-01-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gattc_wid_hdl_multiple_indications), # TODO rewrite GATT/SR/GAS/BV-01-C ZTestCase("GATT", "GATT/SR/GAS/BV-01-C", cmds=pre_conditions + [TestFunc(update_service_gatt_sr_gas_bv_01_c, post_wid=96)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAS/BV-02-C", cmds=pre_conditions_1 + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAS/BV-03-C", cmds=pre_conditions_1 + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAS/BV-04-C", cmds=pre_conditions_1 + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAS/BV-05-C", cmds=pre_conditions_1 + init_server_2 + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAS/BV-06-C", cmds=pre_conditions_1 + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAS/BV-07-C", cmds=pre_conditions_1 + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAS/BV-08-C", cmds=pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GAT/BV-01-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GPA/BV-01-C", pre_conditions_1 + init_server_2, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GPA/BV-02-C", pre_conditions_1 + init_server_3, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GPA/BV-05-C", pre_conditions_1 + init_server_3, generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GPA/BV-06-C", pre_conditions_1 + init_server_3, generic_wid_hdl=gatt_wid_hdl), # TODO rewrite GATT/SR/GPA/BV-11-C ZTestCase("GATT", "GATT/SR/GPA/BV-11-C", cmds=pre_conditions + [TestFunc(btp.gatts_add_svc, 0, UUID.VND16_1), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read, UUID.VND16_2), TestFunc(btp.gatts_set_val, 0, '65'), TestFunc(btp.gatts_add_desc, 0, Perm.read, UUID.CPF), TestFunc(btp.gatts_set_val, 0, '04000127010100'), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read, UUID.VND16_3), TestFunc(btp.gatts_set_val, 0, '1234'), TestFunc(btp.gatts_add_desc, 0, Perm.read, UUID.CPF), TestFunc(btp.gatts_set_val, 0, '06001027010200'), TestFunc(btp.gatts_add_char, 0, Prop.read | Prop.write, Perm.read, UUID.VND16_5), TestFunc(btp.gatts_set_val, 0, '651234'), TestFunc(btp.gatts_add_desc, 0, Perm.read, UUID.CAF), TestFunc(btp.gatts_set_val, 0, '13001600'), TestFunc(btp.gatts_start_server)], generic_wid_hdl=gatt_wid_hdl), ZTestCase("GATT", "GATT/SR/GPA/BV-12-C", pre_conditions_1 + init_server_3, generic_wid_hdl=gatt_wid_hdl), ] test_case_name_list = pts.get_test_case_list('GATT') tc_list = [] for tc_name in test_case_name_list: if not tc_name.startswith('GATT/SR'): continue instance = ZTestCase('GATT', tc_name, cmds=pre_conditions_1, generic_wid_hdl=gatt_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) if len(ptses) < 2: return tc_list pts2 = ptses[1] pre_conditions_lt2 = [TestFunc(lambda: pts2.update_pixit_param( "GATT", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts2.update_pixit_param( "GATT", "TSPX_iut_use_dynamic_bd_addr", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE"))] test_cases_lt2 = [ ZTestCase("GATT", "GATT/SR/GAS/BV-03-C", cmds=pre_conditions_1 + [TestFunc(btp.gap_set_io_cap, IOCap.display_only)], generic_wid_hdl=gatt_wid_hdl, lt2="GATT/SR/GAS/BV-03-C-LT2"), ZTestCaseSlave("GATT", "GATT/SR/GAS/BV-03-C-LT2", cmds=pre_conditions_lt2, generic_wid_hdl=gatt_wid_hdl), ] return tc_list + test_cases_lt2
def set_pixits(ptses): """Setup GAP profile PIXITS for workspace. Those values are used for test case if not updated within test case. PIXITS always should be updated accordingly to project and newest version of PTS. ptses -- list of PyPTS instances""" pts = ptses[0] global iut_device_name iut_device_name = get_unique_name(pts) ad_str_flags = str(AdType.flags).zfill(2) + \ str(AdFlags.br_edr_not_supp).zfill(2) ad_str_flags_len = str(len(ad_str_flags) // 2).zfill(2) ad_str_name_short = str(AdType.name_short).zfill(2) + \ binascii.hexlify(iut_device_name) ad_str_name_short_len = format((len(ad_str_name_short) // 2), 'x').zfill(2) ad_str_manufacturer_data = str(format(AdType.manufacturer_data, 'x')).zfill(2) + \ iut_manufacturer_data ad_str_manufacturer_data_len = str(len(ad_str_manufacturer_data) / 2).zfill(2) ad_pixit = ad_str_manufacturer_data_len + ad_str_manufacturer_data # Set GAP common PIXIT values pts.set_pixit("GAP", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts.set_pixit("GAP", "TSPX_bd_addr_PTS", "C000DEADBEEF") pts.set_pixit("GAP", "TSPX_broadcaster_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_observer_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_peripheral_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_central_class_of_device", "100104") pts.set_pixit("GAP", "TSPX_security_enabled", "FALSE") pts.set_pixit("GAP", "TSPX_delete_link_key", "FALSE") pts.set_pixit("GAP", "TSPX_iut_setup_att_over_br_edr", "FALSE") pts.set_pixit("GAP", "TSPX_mtu_size", "23") pts.set_pixit("GAP", "TSPX_delete_ltk", "FALSE") pts.set_pixit("GAP", "TSPX_pin_code", "0000") pts.set_pixit("GAP", "TSPX_time_guard", "300000") pts.set_pixit("GAP", "TSPX_use_implicit_send", "TRUE") pts.set_pixit("GAP", "TSPX_secure_simple_pairing_pass_key_confirmation", "FALSE") pts.set_pixit("GAP", "TSPX_using_public_device_address", "TRUE") pts.set_pixit("GAP", "TSPX_using_random_device_address", "FALSE") pts.set_pixit("GAP", "TSPX_lim_adv_timeout", "30720") pts.set_pixit("GAP", "TSPX_gen_disc_adv_min", "30720") pts.set_pixit("GAP", "TSPX_lim_disc_scan_min", "10240") pts.set_pixit("GAP", "TSPX_gen_disc_scan_min", "10240") pts.set_pixit("GAP", "TSPX_database_file", "Database-GAP.sig") pts.set_pixit("GAP", "TSPX_iut_rx_mtu", "23") pts.set_pixit("GAP", "TSPX_iut_private_address_interval", "5000") pts.set_pixit("GAP", "TSPX_iut_privacy_enabled", "FALSE") pts.set_pixit("GAP", "TSPX_psm", "1001") pts.set_pixit("GAP", "TSPX_iut_valid_connection_interval_min", "00C8") pts.set_pixit("GAP", "TSPX_iut_valid_connection_interval_max", "03C0") pts.set_pixit("GAP", "TSPX_iut_valid_connection_latency", "0006") pts.set_pixit("GAP", "TSPX_iut_valid_timeout_multiplier", "0962") pts.set_pixit("GAP", "TSPX_iut_connection_parameter_timeout", "30000") pts.set_pixit("GAP", "TSPX_iut_invalid_connection_interval_min", "0000") pts.set_pixit("GAP", "TSPX_iut_invalid_connection_interval_max", "0000") pts.set_pixit("GAP", "TSPX_iut_invalid_connection_latency", "0000") pts.set_pixit("GAP", "TSPX_iut_invalid_conn_update_supervision_timeout", "0800") pts.set_pixit("GAP", "TSPX_LE_scan_interval", "0010") pts.set_pixit("GAP", "TSPX_LE_scan_window", "0010") pts.set_pixit("GAP", "TSPX_con_interval_min", "0032") pts.set_pixit("GAP", "TSPX_con_interval_max", "0046") pts.set_pixit("GAP", "TSPX_con_latency", "0001") pts.set_pixit("GAP", "TSPX_supervision_timeout", "07D0") pts.set_pixit("GAP", "TSPX_minimum_ce_length", "0000") pts.set_pixit("GAP", "TSPX_maximum_ce_length", "0000") pts.set_pixit("GAP", "TSPX_conn_update_int_min", "0032") pts.set_pixit("GAP", "TSPX_conn_update_int_max", "0046") pts.set_pixit("GAP", "TSPX_conn_update_slave_latency", "0001") pts.set_pixit("GAP", "TSPX_conn_update_supervision_timeout", "01F4") pts.set_pixit("GAP", "TSPX_pairing_before_service_request", "FALSE") pts.set_pixit("GAP", "TSPX_iut_mandates_mitm", "FALSE") pts.set_pixit("GAP", "TSPX_encryption_before_service_request", "FALSE") pts.set_pixit("GAP", "TSPX_tester_appearance", "0000") pts.set_pixit("GAP", "TSPX_advertising_data", ad_pixit) pts.set_pixit( "GAP", "TSPX_iut_device_IRK_for_resolvable_privacy_address_generation_procedure", "00000000000000000000000000000000") pts.set_pixit( "GAP", "TSPX_tester_device_IRK_for_resolvable_privacy_address_generation_procedure", "0123456789ABCDEF0123456789ABCDEF") pts.set_pixit("GAP", "TSPX_iut_device_name_in_adv_packet_for_random_address", iut_device_name) pts.set_pixit("GAP", "TSPX_Tgap_104", "60000") pts.set_pixit("GAP", "TSPX_URI", "162F2F7777772E626C7565746F6F74682E636F6D")
def set_pixits(ptses): """Setup L2CAP profile PIXITS for workspace. Those values are used for test case if not updated within test case. PIXITS always should be updated accordingly to project and newest version of PTS. ptses -- list of PyPTS instances""" pts = ptses[0] global iut_device_name iut_device_name = get_unique_name(pts) pts.set_pixit("L2CAP", "TSPX_bd_addr_iut", "DEADBEEFDEAD") pts.set_pixit("L2CAP", "TSPX_bd_addr_iut_le", "DEADBEEFDEAD") pts.set_pixit("L2CAP", "TSPX_client_class_of_device", "100104") pts.set_pixit("L2CAP", "TSPX_server_class_of_device", "100104") pts.set_pixit("L2CAP", "TSPX_security_enabled", "FALSE") pts.set_pixit("L2CAP", "TSPX_delete_link_key", "FALSE") pts.set_pixit("L2CAP", "TSPX_pin_code", "0000") pts.set_pixit("L2CAP", "TSPX_delete_ltk", "FALSE") pts.set_pixit("L2CAP", "TSPX_flushto", "FFFF") pts.set_pixit("L2CAP", "TSPX_inmtu", "02A0") pts.set_pixit("L2CAP", "TSPX_no_fail_verdicts", "FALSE") pts.set_pixit("L2CAP", "TSPX_iut_supported_max_channels", "5") pts.set_pixit("L2CAP", "TSPX_IUT_mps", "0030") pts.set_pixit("L2CAP", "TSPX_outmtu", "02A0") pts.set_pixit("L2CAP", "TSPX_tester_mps", "0017") pts.set_pixit("L2CAP", "TSPX_tester_mtu", "02A0") pts.set_pixit("L2CAP", "TSPX_iut_role_initiator", "True") pts.set_pixit("L2CAP", "TSPX_spsm", format(le_psm, '04x')) pts.set_pixit("L2CAP", "TSPX_psm", "0001") pts.set_pixit("L2CAP", "TSPX_psm_unsupported", format(psm_unsupported, '04x')) pts.set_pixit("L2CAP", "TSPX_psm_authentication_required", "00F2") pts.set_pixit("L2CAP", "TSPX_psm_authorization_required", "00F3") pts.set_pixit("L2CAP", "TSPX_psm_encryption_key_size_required", "00F4") pts.set_pixit("L2CAP", "TSPX_time_guard", "180000") pts.set_pixit("L2CAP", "TSPX_timer_ertx", "120000") pts.set_pixit("L2CAP", "TSPX_timer_ertx_max", "300000") pts.set_pixit("L2CAP", "TSPX_timer_ertx_min", "60000") pts.set_pixit("L2CAP", "TSPX_timer_rtx", "10000") pts.set_pixit("L2CAP", "TSPX_timer_rtx_max", "1000") pts.set_pixit("L2CAP", "TSPX_timer_rtx_min", "60000") pts.set_pixit("L2CAP", "TSPX_rfc_mode_tx_window_size", "08") pts.set_pixit("L2CAP", "TSPX_rfc_mode_max_transmit", "03") pts.set_pixit("L2CAP", "TSPX_rfc_mode_retransmission_timeout", "07D0") pts.set_pixit("L2CAP", "TSPX_rfc_mode_monitor_timeout", "2EE0") pts.set_pixit("L2CAP", "TSPX_rfc_mode_maximum_pdu_size", "02A0") pts.set_pixit("L2CAP", "TSPX_extended_window_size", "0012") pts.set_pixit("L2CAP", "TSPX_use_implicit_send", "TRUE") pts.set_pixit("L2CAP", "TSPX_use_dynamic_pin", "FALSE") pts.set_pixit("L2CAP", "TSPX_iut_SDU_size_in_bytes", "144") pts.set_pixit("L2CAP", "TSPX_secure_simple_pairing_pass_key_confirmation", "FALSE") pts.set_pixit("L2CAP", "TSPX_iut_address_type_random", "FALSE") pts.set_pixit("L2CAP", "TSPX_tester_adv_interval_min", "0030") pts.set_pixit("L2CAP", "TSPX_tester_adv_interval_max", "0050") pts.set_pixit("L2CAP", "TSPX_tester_le_scan_interval", "0C80") pts.set_pixit("L2CAP", "TSPX_tester_le_scan_window", "0C80") pts.set_pixit("L2CAP", "TSPX_tester_conn_interval_min", "0028") pts.set_pixit("L2CAP", "TSPX_tester_conn_interval_max", "0050") pts.set_pixit("L2CAP", "TSPX_tester_conn_latency", "0000") pts.set_pixit("L2CAP", "TSPX_tester_supervision_timeout", "00C8") pts.set_pixit("L2CAP", "TSPX_tester_min_CE_length", "0050") pts.set_pixit("L2CAP", "TSPX_tester_max_CE_length", "0C80") pts.set_pixit("L2CAP", "TSPX_generate_local_busy", "TRUE") pts.set_pixit("L2CAP", "TSPX_l2ca_cbmps_min", "0040") pts.set_pixit("L2CAP", "TSPX_l2ca_cbmps_max", "0100") pts.set_pixit("L2CAP", "TSPX_eatt_over_br_edr", "FALSE")
def test_cases(ptses): """Returns a list of L2CAP test cases ptses -- list of PyPTS instances""" pts = ptses[0] pts_bd_addr = pts.q_bd_addr stack = get_stack() iut_device_name = get_unique_name(pts) stack.gap_init(iut_device_name) common = [ TestFunc(btp.core_reg_svc_gap), TestFunc(btp.core_reg_svc_l2cap), TestFunc(btp.gap_read_ctrl_info), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_bd_addr_iut", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_bd_addr_iut_le", stack.gap.iut_addr_get_str())), TestFunc(lambda: pts.update_pixit_param("L2CAP", "TSPX_spsm", format(le_psm, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_psm_unsupported", format(psm_unsupported, '04x'))), TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_iut_address_type_random", "TRUE" if stack.gap.iut_addr_is_random() else "FALSE")), TestFunc(btp.set_pts_addr, pts_bd_addr, Addr.le_public) ] pre_conditions = common + [ TestFunc(stack.l2cap_init, le_psm, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm) ] pre_conditions_auth = common + [ TestFunc(stack.l2cap_init, psm_authentication_required, le_initial_mtu), TestFunc(btp.l2cap_le_listen, psm_authentication_required) ] pre_conditions_keysize = common + [ TestFunc(stack.l2cap_init, psm_encryption_key_size_required, le_initial_mtu), TestFunc(btp.l2cap_le_listen, psm_encryption_key_size_required) ] pre_conditions_author = common + [ TestFunc(stack.l2cap_init, psm_authorization_required, le_initial_mtu), TestFunc(btp.l2cap_le_listen, psm_authorization_required) ] pre_conditions_eatt = common + [ TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_iut_supported_max_channels", "2")), TestFunc(stack.l2cap_init, le_psm_eatt, le_initial_mtu), TestFunc(btp.l2cap_le_listen, le_psm_eatt) ] pre_conditions_eatt_sec = common + [ TestFunc(lambda: pts.update_pixit_param( "L2CAP", "TSPX_iut_supported_max_channels", "2")), TestFunc(stack.l2cap_init, le_psm_eatt, le_initial_mtu) ] custom_test_cases = [ # Connection Parameter Update ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-04-C", pre_conditions + [TestFunc(lambda: stack.l2cap.psm_set(psm_unsupported))], generic_wid_hdl=l2cap_wid_hdl), ZTestCase( "L2CAP", "L2CAP/LE/CFC/BV-10-C", pre_conditions + [ TestFunc( lambda: stack.l2cap.psm_set(psm_authentication_required)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-11-C", pre_conditions_auth, generic_wid_hdl=l2cap_wid_hdl), ZTestCase( "L2CAP", "L2CAP/LE/CFC/BV-12-C", pre_conditions + [ TestFunc( lambda: stack.l2cap.psm_set(psm_authorization_required)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-13-C", pre_conditions_author, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-14-C", pre_conditions + [ TestFunc(lambda: stack.l2cap.psm_set( psm_encryption_key_size_required)) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/LE/CFC/BV-15-C", pre_conditions_keysize, generic_wid_hdl=l2cap_wid_hdl), # Enhanced Credit Based Flow Control Channel ZTestCase( "L2CAP", "L2CAP/ECFC/BV-11-C", pre_conditions_eatt_sec + [ TestFunc(btp.l2cap_listen, le_psm_eatt, le_initial_mtu, defs.L2CAP_TRANSPORT_LE, L2capSecLevels.authen, 0) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase( "L2CAP", "L2CAP/ECFC/BV-13-C", pre_conditions_eatt_sec + [ TestFunc(btp.l2cap_listen, le_psm_eatt, le_initial_mtu, defs.L2CAP_TRANSPORT_LE, L2capSecLevels.author, 0) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase( "L2CAP", "L2CAP/ECFC/BV-15-C", pre_conditions_eatt_sec + [ TestFunc(btp.l2cap_listen, le_psm_eatt, le_initial_mtu, defs.L2CAP_TRANSPORT_LE, L2capSecLevels.no_sec, 16) ], generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BV-23-C", pre_conditions, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/ECFC/BI-01-C", pre_conditions, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/COS/ECFC/BV-01-C", pre_conditions_eatt, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/COS/ECFC/BV-02-C", pre_conditions_eatt, generic_wid_hdl=l2cap_wid_hdl), ZTestCase("L2CAP", "L2CAP/COS/ECFC/BV-03-C", pre_conditions_eatt, generic_wid_hdl=l2cap_wid_hdl), ] test_case_name_list = pts.get_test_case_list('L2CAP') tc_list = [] for tc_name in test_case_name_list: if tc_name.startswith('L2CAP/ECFC'): instance = ZTestCase('L2CAP', tc_name, pre_conditions_eatt, generic_wid_hdl=l2cap_wid_hdl) else: instance = ZTestCase('L2CAP', tc_name, pre_conditions, generic_wid_hdl=l2cap_wid_hdl) for custom_tc in custom_test_cases: if tc_name == custom_tc.name: instance = custom_tc break tc_list.append(instance) return tc_list