| syntax = "proto3"; |
| package chromite.api; |
| |
| option go_package = "go.chromium.org/chromiumos/infra/proto/go/chromite/api"; |
| |
| import "chromite/api/build_api.proto"; |
| import "chromite/api/sysroot.proto"; |
| import "chromiumos/common.proto"; |
| import "chromiumos/metrics.proto"; |
| |
| // Proto for executing test-related functionality. |
| |
| message BuildTargetUnitTestRequest { |
| message Flags { |
| // Assume the sysroot is empty. |
| bool empty_sysroot = 1; |
| // Whether a toolchain change has occurred. |
| bool toolchain_changed = 2; |
| } |
| |
| // The build target being tested. |
| chromiumos.BuildTarget build_target = 1; |
| // The path where the result tarball should be saved. |
| string result_path = 2; |
| // The chroot containing the sysroot. |
| chromiumos.Chroot chroot = 3; |
| // The flags. |
| Flags flags = 4; |
| // Skipped packages. |
| repeated chromiumos.PackageInfo package_blacklist = 5; |
| } |
| |
| message BuildTargetUnitTestResponse { |
| // The unittest tarball that was created. |
| string tarball_path = 1; |
| // The list of packages that failed. |
| repeated chromiumos.PackageInfo failed_packages = 2; |
| // The metric events that occurred during the running of BuildTargetUnitTest. |
| repeated chromiumos.MetricEvent events = 3; |
| } |
| |
| // Chromite UnitTest request. |
| message ChromiteUnitTestRequest { |
| // The chroot to use to execute the endpoint. |
| chromiumos.Chroot chroot = 1; |
| } |
| |
| message ChromiteUnitTestResponse { |
| } |
| |
| message ChromitePytestRequest { |
| // The chroot to use to execute the endpoint. |
| chromiumos.Chroot chroot = 1; |
| } |
| |
| message ChromitePytestResponse { |
| } |
| |
| message CrosSigningTestRequest { |
| // Required if not in default location. |
| // The chroot where the tests should be executed. |
| chromiumos.Chroot chroot = 1; |
| } |
| |
| message CrosSigningTestResponse { |
| } |
| |
| // Run the debug_info_test script. |
| message DebugInfoTestRequest { |
| // The sysroot to tests. |
| chromite.api.Sysroot sysroot = 1; |
| // The chroot to use to execute the endpoint. |
| chromiumos.Chroot chroot = 2; |
| } |
| |
| message DebugInfoTestResponse { |
| } |
| |
| message VmTestRequest { |
| // The build target under test. Required. |
| chromiumos.BuildTarget build_target = 1; |
| |
| // The chroot in which to run commands. Required. |
| chromiumos.Chroot chroot = 2; |
| |
| // Required. The VM image path. |
| chromiumos.Path vm_path = 3; |
| |
| // Options for SSHing into the VM. |
| message SshOptions { |
| // Path to the private key to the VM. |
| chromiumos.Path private_key_path = 1; |
| |
| // SSH port to communicate with VM. |
| int32 port = 2; |
| } |
| |
| // Options for SSHing into the VM. |
| SshOptions ssh_options = 4; |
| |
| // The program that manages and runs the tests in the VM. |
| enum TestHarness { |
| // No test harness specified. |
| UNSPECIFIED = 0; |
| |
| // Run tests with Tast. |
| TAST = 1; |
| |
| // Run tests with Autotest. |
| AUTOTEST = 2; |
| } |
| |
| TestHarness test_harness = 5; |
| |
| // A specific VM test to run. |
| message VmTest { |
| // The name pattern for the VM test. |
| // For Autotest, this pattern matches against the test suite name. |
| // For Tast, this pattern matches against the Tast test name. |
| string pattern = 1; |
| } |
| |
| // All VM tests that should be run. At least one must be specified. |
| repeated VmTest vm_tests = 6; |
| } |
| |
| message VmTestResponse { |
| } |
| |
| message MoblabVmTestRequest { |
| // Chroot in which to run the VM tests. |
| chromiumos.Chroot chroot = 1; |
| |
| // Data used in the test. |
| message Payload { |
| // Directory containing the payload. |
| chromiumos.Path path = 1; |
| } |
| |
| // Effectively the full output produced by the image builder. |
| Payload image_payload = 2; |
| |
| // Payloads to be loaded into the Moblab VM's cache. |
| repeated Payload cache_payloads = 3; |
| } |
| |
| message MoblabVmTestResponse { |
| } |
| |
| message SimpleChromeWorkflowTestRequest { |
| // The sysroot for which SimpleChrome flow will be run. |
| // The path and build_target are required. |
| // Chrome will be built for the specified board using the sysroot. |
| Sysroot sysroot = 1; |
| |
| // Chrome source directory under which chromium will be built and tested |
| // using cros chrome-sdk. |
| string chrome_root = 2; |
| |
| // Options for using goma when building Chrome. |
| chromiumos.GomaConfig goma_config = 3; |
| } |
| |
| message SimpleChromeWorkflowTestResponse { |
| } |
| |
| // The test service. |
| service TestService { |
| option (service_options) = { |
| module: "test", |
| service_chroot_assert: INSIDE, |
| }; |
| |
| // Run a build target's ebuild unit tests. |
| rpc BuildTargetUnitTest(BuildTargetUnitTestRequest) |
| returns (BuildTargetUnitTestResponse) { |
| option (method_options) = { |
| method_chroot_assert: OUTSIDE, |
| }; |
| } |
| |
| // Run the chromite unit tests. |
| rpc ChromiteUnitTest(ChromiteUnitTestRequest) returns (ChromiteUnitTestResponse); |
| |
| // Run Pytest in chromite. |
| rpc ChromitePytest(ChromitePytestRequest) returns (ChromitePytestResponse); |
| |
| // Run the cros-signing unit tests. |
| rpc CrosSigningTest(CrosSigningTestRequest) returns (CrosSigningTestResponse); |
| |
| // Run the debug info tests on a sysroot. |
| rpc DebugInfoTest(DebugInfoTestRequest) returns (DebugInfoTestResponse); |
| |
| // Run VM tests and report failures. |
| rpc VmTest(VmTestRequest) returns (VmTestResponse); |
| |
| // Run Moblab VM tests and report failures. |
| rpc MoblabVmTest(MoblabVmTestRequest) returns (MoblabVmTestResponse) { |
| option (method_options) = { |
| method_chroot_assert: OUTSIDE, |
| }; |
| } |
| |
| // Run the Simple Chrome workflow unit tests. |
| rpc SimpleChromeWorkflowTest(SimpleChromeWorkflowTestRequest) |
| returns (SimpleChromeWorkflowTestResponse) { |
| option (method_options) = { |
| method_chroot_assert: OUTSIDE, |
| }; |
| } |
| } |