1// Copyright 2023 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_case_metadata.proto"; 13 14// Defines a grouping of Suites either directly through a list of Suites or 15// indirectly through a list of other contained SuiteSets. A SuiteSet 16// is intended to represent a validation assertion that is satisfied if all its 17// containing Suites pass. 18message SuiteSet { 19 // Globally unique identifier across all SuiteSets and Suites. 20 Id id = 1; 21 message Id { 22 string value = 1; 23 } 24 25 // Defines all the metadata about a SuiteSet. 26 Metadata metadata = 2; 27 28 // A list SuiteSet Id's contained within the SuiteSet. 29 repeated Id suite_sets = 4; 30 31 // A list Suite Id's contained within the SuiteSet. 32 repeated Suite.Id suites = 3; 33} 34 35// Defines a list of SuiteSets 36message SuiteSetList { 37 repeated SuiteSet suite_sets = 1; 38} 39 40// Defines a grouping of Tests that represent scheduling units CTP can enforce 41// predefined Suite rules against like runtime limits. A Suite represents a 42// smaller validation assertion that is satisfied if all its containing Tests 43// pass. 44message Suite { 45 // Globally unique identifier across all SuiteSets and Suites. 46 Id id = 1; 47 message Id { 48 string value = 1; 49 } 50 51 // Defines all the metadata about a Suite. 52 Metadata metadata = 2; 53 54 // The list of Tests contained within the Suite. 55 repeated TestCase.Id tests = 3; 56} 57 58// Defines a list of Suites 59message SuiteList { 60 repeated Suite suites = 1; 61} 62 63// Contains extra information regarding the Suite/SuiteSet that does not affect 64// execution or scheduling. 65message Metadata { 66 // Email contacts of owners that gate changes to the Suite/SuiteSet and 67 // should be notified regarding any Suite/SuiteSet issues (e.g. flakiness, 68 // runtime). 69 repeated Contact owners = 1; 70 71 // The Buganizer component to issue bugs against regarding the 72 // Suite/SuiteSet. 73 BugComponent bug_component = 2; 74 75 // A short summary capturing the quality guarantee validated by the 76 // Suite/SuiteSet (e.g. “Validates a device passes Engineering Verification 77 // Testing and is ready to continue to Design Verification Testing”). 78 Criteria criteria = 3; 79}