| # Copyright 2022 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from autotest_lib.client.common_lib import utils |
| from autotest_lib.server.hosts import gsc_devboard_host |
| |
| AUTHOR = 'ChromiumOS BaseOS Engprod' |
| NAME = 'tast.gsc_dt_ab-sta' |
| METADATA = { |
| 'contacts': ['tauto-core@google.com'], |
| 'bug_component': 'b:1034523', # ChromeOS > Test > Harness > Tauto |
| 'criteria': 'Tauto wrapper for specified tast tests', |
| } |
| TIME = 'MEDIUM' |
| TEST_TYPE = 'Server' |
| ATTRIBUTES = 'suite:gsc_dt_ab-sta' |
| MAX_RESULT_SIZE_KB = 50 * 1024 |
| PY_VERSION = 3 |
| |
| # tast.py uses binaries installed from autotest_server_package.tar.bz2. |
| REQUIRE_SSP = True |
| |
| DOC = ''' |
| Run gsc TAST tests that use the SystemTestAuto image on Andreiboards. |
| |
| Args: |
| ti50_build: ti50 build location -> gs://chromeos-releases/firmware-ti50-postsubmit/<build> |
| service_debugger_serial: serial of debugger connected to devboard, defaults to the first one found on the container |
| service_ip: devboard service ip, default is to start a new container |
| service_port: devboard service port, defaults to 39999 |
| |
| Examples: |
| |
| # To run test on a devboard connected to workstation: |
| # Have setup SatLab gcr access according to official instructions. |
| # docker installed outside of chroot |
| # inside chroot, run src/third_party/autotest/files/utils/install_docker_chroot.sh |
| # devboard connected to workstation |
| # outside chroot, start dockerd on local tcp port: dockerd -H tcp://127.0.0.1:2375 |
| test_that --autotest_dir <path/to/autotest/files> --fast --args "ti50_build=gs://chromeos-releases/firmware-ti50-postsubmit/<build> service_debugger_serial=<serial>" andreiboard tast.gsc_dt_ab-sta |
| |
| # To run test on a devboard connected to SatLab: |
| # Have setup complete SatLab according to official instructions. |
| # inside chroot, run src/third_party/autotest/files/utils/install_docker_chroot.sh |
| # devboard connected to SatLab |
| # outside chroot, forward SatLab docker host: ssh -L 2377:192.168.231.1:2375 -N <mysatlab> |
| # start service manually on SatLab, note the printed service ip and port: DOCKER_HOST=127.0.0.1:2377 python -m utils.start_gsc_devboard_host |
| # outside chroot, forward service port: ssh -L 39999:<service ip>:<service port> -N <mysatlab> |
| test_that --autotest_dir <path/to/autotest/files> --fast --args "ti50_build=gs://chromeos-releases/firmware-ti50-postsubmit/<build> service_ip=<service ip> service_port=<service port>" andreiboard tast.gsc_dt_ab-sta |
| ''' |
| |
| def run(machine): |
| args_dict = utils.args_to_dict(args) |
| if "service_ip" not in args_dict: |
| args_dict["service_ip"] = "detect_dt_ab" |
| devboard = hosts.create_host(machine, host_class=gsc_devboard_host.GSCDevboardHost, **args_dict) |
| |
| with devboard.service_context() as service_ep: |
| varslist = ['devboardsvc=' + service_ep] |
| buildurl = args_dict.get('ti50_build') |
| if buildurl is not None: |
| varslist += ['buildurl=' + buildurl] |
| else: |
| varslist += ['buildurl=latest-tot'] |
| job.run_test('tast', |
| host=devboard, |
| max_run_sec=10800, |
| disable_sysinfo=True, |
| test_exprs=['("group:gsc" && gsc_dt_ab && gsc_image_sta)'], |
| varslist=varslist, |
| command_args=args) |
| |
| parallel_simple(run, machines) |