blob: 71ce0512e0298cc31f8d8701bb12c547b1feedae [file] [log] [blame]
// Copyright 2019 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.
syntax = "proto3";
package test_platform.skylab_test_runner;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/test_platform/skylab_test_runner";
import "google/protobuf/timestamp.proto";
import "test_platform/execution/param.proto";
import "test_platform/request.proto";
// Request represents a request for running an individual test via the
// skylab_test_runner recipe.
message Request {
// Prejob defines parameters that affect the steps before the actual test
// (e.g. provision).
message Prejob {
// What needs to be installed onto the DUT at the end of prejob, as specified
// in the cros_test_platform request.
repeated test_platform.Request.Params.SoftwareDependency software_dependencies = 1;
// Mutable software prerequisites. Are installed before running the test if
// necessary. E.g. {"cros-version" : "reef-release/R77-12345.0.0"}
// TODO(crbug.com/1162347): Delete this post-migration.
map<string, string> provisionable_labels = 2 [deprecated = true];
// If set, use the Provision TLS API for the prejob.
// See go/cros-prover go/cros-tls
//
// crbug.com/1137444: This is a transitional argument. Once go/cros-prover
// migration is complete, all prejobs will use the TLS API and this argument
// will be dropped.
bool use_tls = 3;
}
Prejob prejob = 1;
// Test describes which test harness and which test(s) to run.
message Test {
message Autotest {
string name = 1;
string test_args = 2;
// Keyvals are key:value pairs added to the autoserv command.
map <string, string> keyvals = 3;
// If true, run the test as a client-side test: the test logic is
// executed in its entirety on the DUT itself.
// Otherwise, run the test as a server-side test: the test logic is
// executed on the drone server and interacts with the DUT as an external
// object.
bool is_client_test = 4;
// Name to be used to display this test's output artifacts, e.g. logs,
// results etc. By default display_name is the same as name.
//
// display_name is especially useful when using test_args to distinguish
// between multiple instances of the same test in a request.
string display_name = 5;
}
oneof harness {
Autotest autotest = 1;
}
// User-specified options for how results are served to clients
message OffloadOptions {
// If this test needs synchronous offloading of results to Google Storage
bool synchronous_gs_enable = 1;
}
OffloadOptions offload = 2;
}
Test test = 2;
// Soft deadline for test_runner execution.
//
// All prejob or test execution should abort beyond this deadline.
// Clean up actions may execute beyond the deadline.
google.protobuf.Timestamp deadline = 3;
// The UID of the individual CTP request which kicked off this test run.
// Note that distinct requests inside a multi-request CTP build will have
// different UIDs.
string parent_request_uid = 4;
// The buildbucket ID of the CTP build that sent this test_runner request.
int64 parent_build_id = 5;
// Set of Tests to run. The string is a UUID provided by the client
// and used to identify each test result in the response.
map<string, Test> tests = 6;
// Uniformly applied parameters for all test executions in the parent test
// platform request.
test_platform.execution.Param execution_param = 7;
}