blob: 913f4fb68f15e8d1918e87411e0d5aa59e77d9e9 [file] [log] [blame]
# Copyright (c) 2021 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
from autotest_lib.client.common_lib import error
from autotest_lib.server import test
from autotest_lib.server.cros.cellular.callbox_utils import CallboxLookup as cbl
from autotest_lib.server.cros.cellular.callbox_utils import cmw500_cellular_simulator as cmw
from autotest_lib.server.cros.cellular.simulation_utils import ChromebookCellularDut
from autotest_lib.server.cros.cellular.simulation_utils import LteSimulation
class cellular_Callbox_AssertCellularData(test.test):
"""
Asserts that cellular data works.
The test establishes a connection to the appropriate CMW500 callbox. Then
it asserts that the cellular data connection provided to it matches the
data connection provided by ethernet. Any differences are considered an
error. If the cellular data connection is not provided, the second curl
will throw an exception.
"""
version = 1
def run_once(self, host):
"""Simple test that asserts that data provided through simulated
cellular connection matches network ethernet."""
self.log = logging.getLogger()
self.sim = cmw.CMW500CellularSimulator(cbl.callboxes[host.hostname],
22)
self.dut = ChromebookCellularDut.ChromebookCellularDut(host, self.log)
self.simulation = LteSimulation.LteSimulation(
self.sim, self.log, self.dut, {
'attach_retries': 1,
'attach_timeout': 120
}, None)
parameter_list = [
'band', '2', 'bw', '20', 'mimo', '2x2', 'tm', '1', 'pul', '0',
'pdl', 'high'
]
self.simulation.parse_parameters(parameter_list)
self.simulation.start()
a = host.run("curl --interface eth0 google.com")
b = host.run("curl --interface rmnet_data0 google.com")
if a.stdout != b.stdout:
raise error.TestFailure(
"Ethernet and cellular curl output not equal.")