1// Copyright 2021 The ChromiumOS Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto3"; 6 7package chromiumos.test.api; 8 9option go_package = "go.chromium.org/chromiumos/config/go/test/api"; 10 11import "chromiumos/test/api/test_case.proto"; 12import "chromiumos/test/api/test_harness.proto"; 13 14// Defines all metadata about a given test case to support the entire 15// test case lifecycle (planning, execution, debugging, triage, reporting, ...). 16message TestCaseMetadata { 17 api.TestCase test_case = 1; 18 TestCaseExec test_case_exec = 2; 19 TestCaseInfo test_case_info = 3; 20} 21 22// Contains details needed to execute a given test case. 23message TestCaseExec { 24 TestHarness test_harness = 1; 25} 26 27// Contains informational details about a test case which doesn't affect 28// scheduling or execution behavior. 29message TestCaseInfo { 30 // Contacts for ownership / flakiness notification etc. 31 repeated Contact owners = 1; 32 repeated Requirement requirements = 2; 33 BugComponent bug_component = 3; 34 Criteria criteria = 4; 35 HwAgnostic hw_agnostic = 5; 36 LifeCycleStage life_cycle_stage = 6; 37 DDDVariantCategory variant_category = 7; 38 map<string, string> extra_info = 8; 39} 40 41// Contact information of individuals or teams. 42message Contact { 43 // Can be individual user or group email 44 string email = 1; 45} 46 47// Requirements satisfied by test case 48message Requirement { 49 string value = 1; 50} 51 52// Bug component for filing bugs against. 53message BugComponent { 54 string value = 1; 55} 56 57// A short summary capturing the quality guarantee validated by the Test, Suite, 58// SuiteSet, etc. 59message Criteria { 60 string value = 1; 61} 62 63// Specifies if a test can be run on VM or not. 64message HwAgnostic { 65 bool value = 1; 66} 67 68// LifeCycleStage denotes the overall usage of the test. 69message LifeCycleStage { 70 enum LifeCycle{ 71 LIFE_CYCLE_PRODUCTION_READY = 0; 72 LIFE_CYCLE_DISABLED = 1; 73 LIFE_CYCLE_IN_DEVELOPMENT = 2; 74 LIFE_CYCLE_MANUAL_ONLY = 3; 75 LIFE_CYCLE_OWNER_MONITORED = 4; 76 } 77 LifeCycle value = 1; 78} 79 80// Defines hardware and software capabilities of the device or test rigging it 81// needs, which can influence the behavior of the test and its outcome. 82// Not required for the legacy pipeline. 83message DDDVariantCategory { 84 string value = 1; 85} 86 87// A list of TestCaseMetadata for ease of serialization into a file. 88message TestCaseMetadataList { 89 repeated TestCaseMetadata values = 1; 90} 91