1# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5AUTHOR = "ChromeOS Team"
6NAME = "network_3GModemControl.e362"
7PURPOSE = "Verify commands sent to a modem manager are reflected in flimflam."
8CRITERIA = """
9This test will fail if modem manager state differs from flimflam state.
10"""
11ATTRIBUTES = "suite:network3g"
12SUITE = "network3g"
13TIME = "SHORT"
14TEST_CATEGORY = "Functional"
15TEST_CLASS = "network"
16TEST_TYPE = "client"
17DEPENDENCIES = "modem:e362, modem_repair"
18
19# The E362 modems may fail while connecting and disconnecting.  These
20# failures go away if the test is retried.  See crbug.com/224026,
21# crbug.com/224110, and crbug.com/224329.
22# TODO(thieule): Change this from generic retry to specific failure retry.
23# crbug.com/224369.
24RETRIES = 2
25
26DOC = """
27  Tests that commands sent to ModemManager or cromo are reflected in flimflam.
28
29  Issues many connect, disconnect, enable, and disable commands to ensure
30  that the modem state is always properly reflected in flimflam -- even
31  if the commands are sent to the modem manager instead of flimflam.
32"""
33
34from autotest_lib.client.cros.cellular import test_environment
35
36# For E362 modems, we need to prevent the modem from disconnecting too quickly
37# or else the out-of-credits logic will kick in and attempt to reconnect (see
38# shill/cellular_service.cc).  This is accomplished by setting |slow_connect|
39# to True.
40test_env = test_environment.CellularOTATestEnvironment()
41job.run_test('network_3GModemControl', test_env=test_env, autoconnect=False,
42             slow_connect=True, tag='no-autoconnect-e362')
43job.run_test('network_3GModemControl', test_env=test_env, autoconnect=True,
44             slow_connect=True, tag='autoconnect-e362')
45