blob: f4311456ef4e4c1f46b4ec5382196fcf7431360d [file] [log] [blame]
# 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.
from autotest_lib.client.bin import test, utils
from autotest_lib.client.common_lib import error
from autotest_lib.client.cros import backchannel, network
from autotest_lib.client.cros.cellular import cellular, cell_tools
from autotest_lib.client.cros.cellular import emulator_config, labconfig
import logging, re, socket, string, time, urllib2
from autotest_lib.client.cros import flimflam_test_path
import flimflam, routing, mm
# Cellular smoke test and documentation for writing cell tests
class cellular_Smoke(test.test):
version = 1
# The autotest infrastructure calls run_once. The control file
# fetches the JSON lab config and passes it in as a python object
def run_once(self, config):
# backchannel.Backchannel sets up an ethernet connection to the
# DUT that has restrictive routes is outside of flimflam's
# control. This makes the tests resilient to flimflam restarts
# and helps to ensure that the test is actually sending traffic on
# the cellular link
with backchannel.Backchannel():
flim = flimflam.FlimFlam()
# This shuts down other network devices on the host. Again,
# this is to ensure that test traffic goes over the modem
with cell_tools.OtherDeviceShutdownContext('cellular', flim):
bs, verifier = emulator_config.GetDefaultBasestation(
config, cellular.Technology.WCDMA)
network.ResetAllModems(flim)
# TODO(rochberg) Need to figure out what isn't settling here.
# Going to wait 'til after ResetAllModems changes land.
time.sleep(10)
(service, _) = cell_tools.ConnectToCellular(flim, verifier)
cell_tools.CheckHttpConnectivity(config)
cell_tools.DisconnectFromCellularService(bs, flim, service)