78 lines
2.7 KiB
Plaintext
78 lines
2.7 KiB
Plaintext
# Copyright (c) 2014 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.
|
|
|
|
from autotest_lib.server import utils
|
|
|
|
AUTHOR = "Harpreet Grewal <harpreet@chromium.org>"
|
|
NAME = "cellular_StaleModemReboot"
|
|
PURPOSE = "Verify modem is available for testing."
|
|
CRITERIA = """
|
|
This test will fail if either there is no response to modem status command or
|
|
modem is in a non testable state after two or more tries.
|
|
"""
|
|
TIME = "SHORT"
|
|
TEST_CATEGORY = "Functional"
|
|
TEST_CLASS = "network"
|
|
TEST_TYPE = "server"
|
|
ATTRIBUTES = "suite:cellular_modem_repair"
|
|
DEPENDENCIES = "servo_state:WORKING"
|
|
|
|
DOC = """
|
|
Tests that a cellular modem is available for testing.
|
|
|
|
The test attempts to detect the modem state by running the modem status
|
|
command on the DUT and strips the state from its output. The test saves the
|
|
original modem state and reboots the DUT regardless of what state the modem
|
|
is in. After the reboot, it tries to get the modem state again and if the
|
|
modem does not respond or the state is one of the following as listed below,
|
|
it tries to reboot the DUT for a maximum of two tries by default. User can
|
|
override the number of tries by passing a tries flag with a desired value.
|
|
|
|
REBOOT STATES (If modem is in any of these states, DUT is cold rebooted using
|
|
the servo.):
|
|
MODEM STATE FAILED = -1
|
|
MODEM STATE UNKNOWN = 0
|
|
MODEM STATE DISABLED = 3
|
|
MODEM STATE DISABLING = 4
|
|
MODEM STATE DISCONNECTING = 9
|
|
GOBI MODEM STATE UNKNOWN = 0
|
|
GOBI MODEM STATE DISABLED = 10
|
|
GOBI MODEM STATE DISABLING = 20
|
|
GOBI MODEM STATE DISCONNECTING = 70
|
|
|
|
WAIT DELAY STATES (Waits for a maximum of 120 seconds for the modem to get
|
|
into a testable state. If the modem is still not in a stable state after the
|
|
first try, DUT will be rebooted.):
|
|
MODEM STATE INITIALIZING = 1
|
|
MODEM STATE ENABLING = 5
|
|
MODEM STATE ENABLED = 6
|
|
MODEM STATE SEARCHING = 7
|
|
GOBI MODEM STATE ENABLING = 30
|
|
GOBI MODEM STATE ENABLED = 40
|
|
GOBI MODEM STATE SEARCHING = 50
|
|
|
|
STABLE STATES (Test does nothing.):
|
|
MODEM STATE REGISTERED = 8
|
|
MODEM STATE CONNECTING = 10
|
|
MODEM STATE CONNECTED = 11
|
|
GOBI MODEM STATE REGISTERED = 60
|
|
GOBI MODEM STATE CONNECTING = 80
|
|
GOBI MODEM STATE CONNECTED = 90
|
|
|
|
LOCKED STATE (Test fails, the device should never be in this state unless
|
|
the SIM is locked):
|
|
MODEM STATE LOCKED = 2
|
|
|
|
"""
|
|
|
|
args_dict = utils.args_to_dict(args)
|
|
servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
|
|
|
|
def run_StaleModemReboot(machine):
|
|
host = hosts.create_host(machine, servo_args=servo_args)
|
|
tries = int(args_dict.get('tries', 2))
|
|
job.run_test('cellular_StaleModemReboot', host=host, tries=tries)
|
|
|
|
parallel_simple(run_StaleModemReboot, machines)
|