README

ChromeOS Test Platform recipe step implementations.

This binary's subcommands implement the various phases of the the cros_test_platform recipe, which handles cros_test_platform requests.

A cros_test_platform execution runs through these steps and subcommands, in this order:

scheduler-traffic-split

Inspect the parameters of the request, and the current traffic split configuration, to determine which scheduling backend (autotest or skylab) this request should be routed to. Also, do any necessary request munging (such as remapping of capacity pools or accounts) such that clients can be insulated from backend migrations.

enumerate

Inspect the request's test plan, and the test artifacts that were created for the build-under-test, to determine which tests to run, with what arguments.

autotest-execute or skylab-execute

Execute the enumerated tests, in the correct backend; wait for them to complete, and collect and summarize their results.

How to run unittests

Make sure you run set up the environment properly first by running eval step in the setup guide first. Note that the eval command setup temporary environment for the shell, so it need to be run every time a new terminal spawned.

After that, invoke go test from the go/src/infra folder, e.g: $ go test infra/cmd/cros_test_platform/internal/execution

Expand ▾ Collapse ▴

Documentation

Overview

    Command cros_test_platform implements the cros_test_platform recipe's steps.

    Source Files

    Directories

    Path Synopsis
    Command luciexe implements the cros_test_platform build logic.
    Command luciexe implements the cros_test_platform build logic.
    common
    Package common houses common logic for all "steps" in this luciexe.
    Package common houses common logic for all "steps" in this luciexe.
    execute
    Package execute houses the top-level logic for the execute step.
    Package execute houses the top-level logic for the execute step.
    internal
    autotest/artifacts
    Package artifacts contains utility functions to download and unarchive Autotest build artifacts.
    Package artifacts contains utility functions to download and unarchive Autotest build artifacts.
    autotest/testspec
    Package testspec contains functions to compute Build API test specification from Autotest control files.
    Package testspec contains functions to compute Build API test specification from Autotest control files.
    cmd
    enumeration
    Package enumeration contains functions to enumerate tests and associated metadata matching test plan requirements.
    Package enumeration contains functions to enumerate tests and associated metadata matching test plan requirements.
    execution
    Package execution provides end-to-end execution of pre-enumerated cros_test_platform requests via the Skylab task running infrastructure.
    Package execution provides end-to-end execution of pre-enumerated cros_test_platform requests via the Skylab task running infrastructure.
    execution/args
    Package args contains the logic for assembling all data required for creating an individual task request.
    Package args contains the logic for assembling all data required for creating an individual task request.
    execution/build
    Package build provides a way to update the buildbucket Build proto during execution.
    Package build provides a way to update the buildbucket Build proto during execution.
    execution/response
    Package response provides a way to accumulate and summarize the response for a request.
    Package response provides a way to accumulate and summarize the response for a request.
    execution/retry
    Package retry provides a way to determine when a task should be retried.
    Package retry provides a way to determine when a task should be retried.
    execution/testrunner
    Package testrunner exposes a way to interact with test_runner builds.
    Package testrunner exposes a way to interact with test_runner builds.
    execution/testrunner/service
    Package service implements a skylab.Client using calls to BuildBucket.
    Package service implements a skylab.Client using calls to BuildBucket.
    execution/types
    Package types contains types common to execution sub-packages.
    Package types contains types common to execution sub-packages.
    site
    Package site contains functions and constants related to execution of this tool in specific environments (e.g., developer workstation vs buildbucket build)
    Package site contains functions and constants related to execution of this tool in specific environments (e.g., developer workstation vs buildbucket build)
    testutils
    Package testutils contains utility functions for unit and integration tests.
    Package testutils contains utility functions for unit and integration tests.