| # 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) |