Beispiel #1
0
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")
Beispiel #2
0
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
Beispiel #3
0
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
Beispiel #4
0
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
Beispiel #5
0
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")
Beispiel #6
0
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
Beispiel #7
0
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
Beispiel #8
0
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
Beispiel #9
0
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
Beispiel #10
0
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
Beispiel #11
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
    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
Beispiel #12
0
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
Beispiel #13
0
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
Beispiel #14
0
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")
Beispiel #15
0
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
Beispiel #16
0
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")
Beispiel #17
0
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
Beispiel #18
0
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")
Beispiel #19
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
Beispiel #20
0
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
Beispiel #21
0
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")
Beispiel #22
0
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")
Beispiel #23
0
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