| // 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 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; |
| } |
| |