# Copyright (c) 2011 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. AUTHOR = "ChromeOS Team" NAME = "cellular_GobiDisableWhileConnecting" PURPOSE = "Check that the 3G modem can handle a disconnect while connecting." CRITERIA = """ This test will fail if a disconnect request while the modem is connecting is not promptly executed. (Includes Gobi-specific tests: delaying asynchronous connect and QMI failure.) """ TIME = "SHORT" TEST_CATEGORY = "Functional" TEST_CLASS = "network" TEST_TYPE = "client" DOC = """ Check that the 3G modem can handle a disconnect while connecting. """ from autotest_lib.client.cros.cellular import test_environment ITERATIONS_PER_TEST=1 test_env = test_environment.CellularOTATestEnvironment() job.run_test('cellular_DisableWhileConnecting', test_env=test_env, timeout_s=20, delay_before_disable_ms=0, disable_delay_per_iteration_ms=0, iterations=ITERATIONS_PER_TEST, tag='instant_disable') # Since dbus-python emits our calls asynchronously, it is sometimes # (often?) the case that the disable arrives before the connect. # There's no good way to track what actually gets sent first, so we # sleep. test_env = test_environment.CellularOTATestEnvironment() job.run_test('cellular_DisableWhileConnecting', test_env=test_env, timeout_s=20, delay_before_disable_ms=0, disable_delay_per_iteration_ms=int(1000.0 / ITERATIONS_PER_TEST), iterations=ITERATIONS_PER_TEST, tag='disable_delay_ramp') # Gobi-specific tests: # Similarly, we can't be sure what the relative timings of the # completion of the session starter thread and arrival of the disable # request are. Try pushing the start thread completion way out. test_env = test_environment.CellularOTATestEnvironment() job.run_test('cellular_DisableWhileConnecting', test_env=test_env, timeout_s=20, delay_before_disable_ms=200, async_connect_sleep_ms=3000, iterations=ITERATIONS_PER_TEST, tag='short_delay_disable') test_env = test_environment.CellularOTATestEnvironment() job.run_test('cellular_DisableWhileConnecting', test_env=test_env, timeout_s=20, delay_before_disable_ms=0, disable_delay_per_iteration_ms=0, connect_fails_with_error_sending_qmi_request=1, iterations=1, tag='qmi_failure')