blob: 61bc3e9bdc7bc4dc87eb3c19d806fdc1161984af [file] [log] [blame]
# Copyright (c) 2013 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.
import logging, pickle, time
from autotest_lib.client.bin import test, utils
from autotest_lib.client.common_lib import error
from autotest_lib.client.cros import backchannel, http_speed, network
from autotest_lib.client.cros.cellular import cellular, cell_tools, environment
from autotest_lib.client.cros import flimflam_test_path
import flimflam
class cellular_Throughput(test.test):
version = 1
def run_once(self, config, technology):
with environment.DefaultCellularTestContext(config) as c:
env = c.env
flim = flimflam.FlimFlam()
env.StartDefault(technology)
network.ResetAllModems(flim)
cell_tools.PrepareModemForTechnology('', technology)
# TODO(rochberg): Figure out why this is necessary
time.sleep(10)
# Clear all errors before we start.
# Resetting the modem above may have caused some errors on the
# 8960 (eg. lost connection, etc).
env.emulator.ClearErrors()
service = env.CheckedConnectToCellular()
# TODO(rochberg): Factor this and the counts stuff out
# so that individual tests don't have to care.
env.emulator.LogStats()
env.emulator.ResetDataCounters()
perf = http_speed.HttpSpeed(
env.config.cell['perfserver']['download_url_format_string'],
env.config.cell['perfserver']['upload_url'])
# TODO(rochberg): Can/should we these values into the
# write_perf_keyval dictionary? Now we just log them.
env.emulator.GetDataCounters()
env.CheckedDisconnectFromCellular(service)
self.write_perf_keyval(perf)