| # Copyright (c) 2015 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import common |
| from autotest_lib.client.cros.cellular.mbim_compliance import mbim_constants |
| from autotest_lib.client.cros.cellular.mbim_compliance import mbim_errors |
| from autotest_lib.client.cros.cellular.mbim_compliance import mbim_test_base |
| from autotest_lib.client.cros.cellular.mbim_compliance.sequences \ |
| import connect_sequence |
| from autotest_lib.client.cros.cellular.mbim_compliance.sequences \ |
| import get_descriptors_sequence |
| from autotest_lib.client.cros.cellular.mbim_compliance.sequences \ |
| import mbim_open_generic_sequence |
| |
| |
| class MbimDtsTestBase(mbim_test_base.MbimTestBase): |
| """ Base class for all the data transfer tests. """ |
| |
| def run_precondition(self, ntb_format): |
| """ |
| Runs all the precondition sequences for data transfer tests. |
| |
| @param ntb_format: Whether to send/receive an NTB16 or NTB32 frame. |
| Possible values: NTB_FORMAT_16, NTB_FORMAT_32 (mbim_constants) |
| @returns tuple of (desc_sequence, open_sequence, connect_sequence) where, |
| desc_sequence - Handle to run the get descriptor sequence. |
| open_sequence - Handle to run the open sequence. |
| connect_sequence - Handle to run the connect sequence. |
| |
| """ |
| desc_sequence = get_descriptors_sequence.GetDescriptorsSequence( |
| self.device_context) |
| descriptors = desc_sequence.run() |
| self.device_context.update_descriptor_cache(descriptors) |
| open_sequence = mbim_open_generic_sequence.MBIMOpenGenericSequence( |
| self.device_context) |
| open_sequence.run(ntb_format=ntb_format) |
| connect_seq = connect_sequence.ConnectSequence(self.device_context) |
| connect_seq.run() |
| |
| # Devices may not support SetNtbFormat(), so fail the NTB32 tests on |
| # such devices. |
| if ((ntb_format == mbim_constants.NTB_FORMAT_32) and |
| (self.device_context.current_ntb_format != ntb_format)): |
| mbim_errors.log_and_raise( |
| mbim_errors.MBIMComplianceFrameworkError, |
| 'Device does not support NTB 32 format.') |
| |
| return (desc_sequence, open_sequence, connect_seq) |