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 "google/protobuf/wrappers.proto"; 12import "chromiumos/test/api/dut_attribute.proto"; 13import "chromiumos/test/api/test_suite.proto"; 14 15// CoverageRule specifies a set of tests that must be executed, and criteria for 16// the DUTs to execute tests on. 17// Next ID: 7 18message CoverageRule { 19 // Optional human friendly name of the rule, e.g. 20 // "kernel:5.4_soc:geminilake_wifi:intel-5600". 21 string name = 1; 22 23 // Test suites that must be executed. 24 repeated TestSuite test_suites = 2; 25 26 // DutTargets to execute the tests on. 27 // - At least one target must be specified. 28 // - Additional targets will target compound scheduling units (for units 29 // with multiple physical duts) 30 repeated DutTarget dut_targets = 4; 31 32 // Whether the rule is considered critical. For example, this value determines 33 // whether failures in this rule fail a CQ or postsubmit run. Note that the 34 // default is true. 35 google.protobuf.BoolValue critical = 5; 36 37 // If true, then run test suites in this rule via CFT workflow. 38 bool run_via_cft = 6; 39 40 // if enable_autotest_sharding is True, then autotest tests will be sharded 41 bool enable_autotest_sharding = 7; 42 43 // Graveyard 44 repeated DutCriterion dut_criteria = 3 [deprecated = true]; 45} 46 47// Describes a CoverageRule and the Starlark file it was generated from. For 48// use as a schema for a BigQuery table (or any other storage that uses a proto 49// schema). 50// 51// Only intended for use in an analytic context, i.e. this shouldn't be used for 52// config or execution during the actual test planning process. 53// 54// Note that the host, project, and path fields are essentially exactly the same 55// as in the TestPlanStarlarkfile message; that message isn't used because the 56// TemplateParameters don't make sense in this context. 57message CoverageRuleBqRow { 58 // Gitiles hostname, e.g. "chromium.googlesource.com". 59 string host = 1; 60 61 // Repository name on the host, e.g. "chromium/src". 62 string project = 2; 63 64 // Absolute path within the repo to the Starlark file. Regexes are not 65 // allowed. 66 string path = 3; 67 68 CoverageRule coverage_rule = 4; 69}