• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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