• 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 "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}