blob: 775a2244e525faedff72c86e4969efe077b86360 [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;
import "test_platform/common/task.proto";
option go_package = "go.chromium.org/chromiumos/infra/proto/go/test_platform/skylab_test_runner";
// Result defines the output format of skylab_test_runner.
// It contains a summary of test results from a single Swarming task run.
message Result {
// Autotest describes the result summary for the case of autotest harness.
message Autotest {
// TestCase describes the result of an individual test case.
// A single control file may correspond to multiple test cases.
message TestCase {
// Test case name as it appears in status.log.
string name = 1;
// Verdict defines the test case result to be reported.
enum Verdict {
VERDICT_UNDEFINED = 0;
VERDICT_PASS = 1;
VERDICT_FAIL = 2;
VERDICT_NO_VERDICT = 3;
}
Verdict verdict = 2;
// A one line human readable description of what happened during test
// case execution (e.g. error/warning message). Not intended to be machine
// parseable. There's no guarantee that a given root cause will always
// resolve to the same summary.
string human_readable_summary = 3;
}
repeated TestCase test_cases = 1;
// False if test_cases represents all of the test cases to be run by the
// task. True otherwise (e.g. the task was aborted early).
bool incomplete = 2;
// Google Storage URL at which to place results
string synchronous_log_data_url = 3;
}
// Which test harness was used.
oneof harness {
Autotest autotest_result = 1;
}
// Prejob contains all preparatory operations that run before the actual
// test cases.
message Prejob {
// Step describes an individual prejob operation e.g. provision.
message Step {
// Step name, e.g. as it appears in status.log.
string name = 1;
// Verdict defines the final step status. Eventually may have different
// cases from the test case verdict, e.g. VERDICT_SKIPPED.
enum Verdict {
VERDICT_UNDEFINED = 0;
VERDICT_PASS = 1;
VERDICT_FAIL = 2;
}
Verdict verdict = 2;
// A one line human readable description of what happened during step
// execution (e.g. error/warning message). Not intended to be machine
// parseable. There's no guarantee that a given root cause will always
// resolve to the same summary.
string human_readable_summary = 3;
}
repeated Step step = 1;
}
Prejob prejob = 2;
test_platform.common.TaskLogData log_data = 3;
// StateUpdate contains Skylab state changes that resulted from the test run.
// It is consumed by `skylab_local_state save`.
message StateUpdate {
// E.g. "needs_repair", "ready" etc.
string dut_state = 1;
}
StateUpdate state_update = 4;
// Set of test results. The string is a UUID used to identify each test, and
// comes from the client.
map<string, Autotest> autotest_results = 6;
reserved 5;
reserved "async_results";
}