blob: 5fa9fbc738b3acef6600ec1f56d5a4ba31711dd1 [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";
// AsyncResults contains references to locations where task results will
// eventually be available.
message AsyncResults {
// The URL at which a human will be able to view the task's logs.
string logs_url = 1;
// The full google storage URL at which a task's full logs will be stored.
string gs_url = 2;
}
// 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 [deprecated = true];
// 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;
AsyncResults async_results = 5;
}