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
Documentation
¶
Overview ¶
Command cros_test_platform implements the cros_test_platform recipe's steps.
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. |
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. |