blob: a7c290087557e567ba360f1b27bbe309d655ece1 [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.phosphorus;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/test_platform/phosphorus";
import "google/protobuf/timestamp.proto";
import "test_platform/phosphorus/common.proto";
// RunTestRequest defines the input of `phosphorus runtest`.
message RunTestRequest {
Config config = 1;
// A test may use more than one DUT at once.
repeated string dut_hostnames = 2;
// Autotest describes the DUT-agnostic parameters of an autotest test run.
message Autotest {
// Test name as given in the control file.
string name = 1;
// Args to pass into the test run (meaning depends on the test).
string test_args = 2;
// 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.
string display_name = 3;
// True for client-side tests, false for server-side tests.
bool is_client_test = 4;
// Key:value pairs added to the autoserv command. These are metadata which
// should not affect code execution.
map<string,string> keyvals = 5;
}
oneof test {
Autotest autotest = 3;
}
// remote test drive-agnostic environment variables and similar parameters
message Environment {
reserved 1; // formerly isolated output dir
// Directory in Google Storage (bucket or subdirectory) in which
// synchronous log-data will be offloaded. Reused across tasks.
// ex. "gs://chromeos-autotest-results/sync-offloads-testing"
string gs_root_dir = 2;
}
Environment environment = 4;
// Hard deadline for execution.
//
// All test execution should abort beyond this deadline.
google.protobuf.Timestamp deadline = 5;
}
// RunTestResponse defines the output of `phosphorus runtest`.
message RunTestResponse {
// Values should be consistent with https://aip.dev/216
enum State {
// Should not be used.
STATE_UNSPECIFIED = 0;
// The test succeeded.
//
// Some test failures may not be detectable during execution. These
// failures will be detected when parsing results off the test logs in a
// later step of test_runner.
SUCCEEDED = 1;
// The test failed.
FAILED = 2;
// The test hit the requested timeout.
TIMED_OUT = 3;
// The test was aborted externally.
ABORTED = 4;
}
// `phosphorus runtest` exits with exit code 0 unless there is an
// infrastructure failure. When the exit code is 0, `state` indicates the
// best known state of the test execution (see comments on State enum).
State state = 1;
// Absolute path to the test results directory created by `runtest`.
// Must be inside config.task.results_dir (the overall results directory).
string results_dir = 2;
}