• 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_case_metadata.proto";
13import "chromiumos/test/api/test_execution_metadata.proto";
14
15
16// Defines a named collection of tests.
17//
18// For test scheduling/execution purposes, there is no guarantee on ordering.
19// Tests can be batched/unbatched in different sequences and can be
20// executed on different devices altogether.
21message TestSuite {
22  // Optional human friendly name
23  string name = 1;
24
25  oneof spec {
26    // Explicit list of tests
27    TestCaseIdList test_case_ids = 2;
28    // Tests are included via tag inclusion/exclusion criteria.
29    TestCaseTagCriteria test_case_tag_criteria = 3;
30    // List of all test_cases
31    TestCaseList test_cases = 4;
32    // List of TestCaseMetadata which is list of test case with metadata.
33    TestCaseMetadataList test_cases_metadata = 6;
34  }
35
36  // No-op with CTP2 rollout, use max_in_shard instead.
37  int64 total_shards = 5 [deprecated = true];
38
39  // See test_platform.Request.TestPlan.max_in_shard.
40  int64 max_in_shard = 8;
41
42  // Defines a combination of tag and test name based selection criteria,
43  // which is applied against a list of TestCase definitions to determine
44  // test suite inclusion.
45  //
46  // Tests are included if they meet the following:
47  //  - MATCH ALL of the [include] tags and at least one from [include] test names
48  //  - DO NOT MATCH ANY of the exclude tags or test names
49  //
50  // Tags must match exactly (i.e. no regexp, wildcard, etc. allowed).
51  // Test names allow usage of wildcard.
52  message TestCaseTagCriteria {
53    repeated string tags = 1;
54    repeated string tag_excludes = 2;
55    repeated string test_names = 3;
56    repeated string test_name_excludes = 4;
57  }
58
59  // K:Vs to be passed to the harness. Mostly will be used for args; but
60  // technically can go for others.
61  ExecutionMetadata execution_metadata = 7;
62
63}
64