| // Copyright 2019 The ChromiumOS Authors |
| // 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"; |
| import "google/protobuf/timestamp.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. |
| // NEXT ID: 6 |
| message TestCase { |
| // Test case name as it appears in status.log. |
| string name = 1; |
| |
| // Verdict defines the test case result to be reported. |
| // NEXT ID: 6 |
| enum Verdict { |
| // Status was not specificed. |
| VERDICT_UNDEFINED = 0; |
| |
| // The test has passed. |
| VERDICT_PASS = 1; |
| |
| // The test has failed. |
| VERDICT_FAIL = 2; |
| |
| // The test was skipped before execution. |
| VERDICT_NO_VERDICT = 3; |
| |
| // The test has crashed during exectuion due to an error. |
| VERDICT_ERROR = 4; |
| |
| // The test has started but was aborted before finishing. |
| VERDICT_ABORT = 5; |
| } |
| |
| 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; |
| |
| // The start time of the test case run. |
| google.protobuf.Timestamp start_time = 4; |
| |
| // The end time of the test case run. |
| google.protobuf.Timestamp end_time = 5; |
| } |
| |
| 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; |
| |
| reserved 3; |
| reserved "synchronous_log_data_url"; |
| } |
| |
| // 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"; |
| } |