# Copyright 2017 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_Smoke.fibocom-l850gl"
PURPOSE = "Verify 3G modem can connect to the network."
CRITERIA = """
This test will fail if one of the following conditions occur:
  - 3G modem fails to connect to network
  - the modem is not left in a working state
"""
ATTRIBUTES = "suite:cellular_ota_att, suite:cellular_ota_sprint, suite:cellular_ota_verizon"
TIME = "SHORT"
TEST_CATEGORY = "Functional"
TEST_CLASS = "network"
TEST_TYPE = "client"
DEPENDENCIES = "modem:fibocom-l850gl"

# TODO(crbug.com/932661) Fix the root cause of the flakiness and
# remove this hack.
JOB_RETRIES=3

DOC = """
  Tests that 3G modem can connect to the network

  The test attempts to connect using the 3G network.  It assumes that
  a 3G modem is plugged in and has a signal.  The test then
  disconnects from the network, and verifies that the modem still
  responds to modem manager DBUS API calls.  It repeats the
  connect/disconnect sequence several times.
"""

from autotest_lib.client.cros.cellular import test_environment

test_env = test_environment.CellularOTATestEnvironment()
job.run_test('cellular_Smoke', tag='fibocom-l850gl', test_env=test_env)
