| // Copyright 2020 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.analytics; |
| |
| import "google/protobuf/timestamp.proto"; |
| |
| option go_package = "go.chromium.org/chromiumos/infra/proto/go/test_platform/analytics"; |
| |
| // TestPlanRun represents the test request defined by users and its running |
| // status. |
| message TestPlanRun { |
| // A unique name to identify this test plan run, format |
| // "testPlanRuns/CTP_BUILD_ID/REQ_KEY", where REQ_KEY is the CTP |
| // request’s key in the multiple-request, |
| // e.g. "testPlanRuns/8879199769272202448/octopus_ampton" |
| // Required field. |
| string uid = 1; |
| |
| // CTP build ID. |
| int64 build_id = 2; |
| |
| // Suite name. If the test plan is running an autotest suite, |
| // this field is the autotest suite name, e.g. wifi_interop. |
| string suite = 3; |
| |
| // Human friendly url to access this run. |
| string execution_url = 4; |
| |
| // The dut_pool in which the test plan ran, e.g. "DUT_POOL_QUOTA" or |
| // "wificell". |
| // It is case sensitive: "WIFICELL" and "wificell" represent different |
| // pools. |
| // Note that legacy pools "suites", "bvt" and "pcq" have been integrated |
| // into "DUT_POOL_QUOTA" and legacy pool "cts" has been renamed to |
| // "DUT_POOL_CTS". |
| string dut_pool = 5; |
| |
| // The build target, a.k.a board name, e.g. "hatch", "octopus". |
| string build_target = 6; |
| |
| // CrOS build version, e.g. "R84/13091.0.0". |
| string chromeos_build = 7; |
| |
| Status status = 8; |
| |
| // Event timestamp of test plan run, e.g. start time, end time. |
| Timeline timeline = 9; |
| } |
| |
| // TestRun contains Skylab task level information. |
| message TestRun { |
| // Test runner build ID. |
| int64 build_id = 1; |
| |
| // The name of the Skylab task corresponding to the test run, e.g. |
| // "tast.critical-chrome". |
| // |
| // For tasks containing a single test case, will generally be the same as the |
| // name of that test case, e.g. "provision_AutoUpdate.double". |
| // Required field. |
| string display_name = 2; |
| |
| // Human friendly url to access this run. |
| string execution_url = 3; |
| |
| // The TestPlanRun.uid of the parent test plan run. |
| string parent_uid = 4; |
| |
| // Model name, e.g. "helios", "mimrock". |
| // Note that a single TestPlanRun may be spread across multiple models, if |
| // the test plan request did not specify a model to run. |
| string model = 5; |
| |
| // Event timestamp of test run, e.g. start time, end time. |
| Timeline timeline = 6; |
| |
| Status status = 7; |
| |
| Verdict verdict = 8; |
| |
| // The URL for the entire logs of this run. |
| string full_log_url = 9; |
| |
| message Prejob { |
| Verdict verdict = 1; |
| } |
| Prejob prejob = 10; |
| } |
| |
| // TestCaseResult describes the result of an individual test case. |
| message TestCaseResult { |
| // A unique name for this test case run, |
| // format "testCaseResults/TEST_RUNNER_BUILD_ID/TEST_CASE_NAME", e.g. |
| // "testCaseResults/8879199769272202448/provision_AutoUpdate.double". |
| // Required field. |
| string uid = 1; |
| |
| // Test case name as it appears in status.log, |
| // e.g. "provision_AutoUpdate.double". |
| string display_name = 2; |
| |
| // The TestRun.build_id of the parent test run. |
| string parent_build_id = 3; |
| |
| Verdict verdict = 4; |
| |
| // 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 = 5; |
| } |
| |
| // The timeline of a task. |
| message Timeline { |
| // Time the task was requested. |
| google.protobuf.Timestamp create_time = 1; |
| // Time the task began to execute in a bot. |
| google.protobuf.Timestamp start_time = 2; |
| // Time the task completed, unset if the task was |
| // stopped unexpectedly before its completion. |
| google.protobuf.Timestamp end_time = 3; |
| // Time the task was stopped unexpectedly, unset if |
| // task has run to its end. |
| google.protobuf.Timestamp abandon_time = 4; |
| } |
| |
| // The latest known status of a task, may change as the run progresses. |
| message Status { |
| // All the currently possible values (corresponding to |
| // testplatform.Taskstate.LifeCycle enum values): |
| // NORMAL STATUS: |
| // |
| // PENDING: task is pending somewhere and does not run. |
| // RUNNING: task is running. |
| // COMPLETED: ran to completion without being cancelled externally, |
| // regardless of whether it succeeded or failed. A task is completed |
| // only if all its sub-tasks have reached the end, either with a normal |
| // or abnormal status. |
| // |
| // ABNORMAL STATUS: |
| // |
| // CANCELLED: never got a chance to run, cancelled externally. |
| // REJECTED: never got a chance to run, rejected due to unsatisfiable |
| // depenedencies. |
| // ABORTED: started running but was cancelled externally while running. |
| string value = 1; |
| } |
| |
| // The known tokens describe whether a task passed, failed, or had some other |
| // indefinite verdict. |
| message Verdict { |
| // All the currently possible values (corresponding to |
| // testplatform.Taskstate.Verdict enum values): |
| // |
| // UNSPECIFIED(default): the task produced no usable verdict (possibly |
| // because it never ran, or never finished, or the results were |
| // unparseable). |
| // Under most circumstances, this should be treated as a failure or |
| // an infrastructure failure. |
| // PASSED: test run definitively passed. |
| // FAILED: test run definitively failed. |
| // NO_VERDICT: the task definitively produced no verdict(for instance, |
| // the test is irrelevant in the given environment). |
| // Under most circumstances, this should be treated as a passing |
| // (but uninteresting). |
| // PASSED_ON_RETRY: the task failed, but passed after one or more retries. |
| string value = 1; |
| } |