blob: 4e82c27a5825d99bc9bc58842e1b78846f7f6827 [file] [log] [blame]
// Copyright 2019 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package testplans;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/testplans";
import "testplans/common.proto";
// A list of test groups.
message TestGroups { repeated string name = 1; }
// A description of how to remove test suites from the default set of test
// suites in ChromeOS CQ, as a result of source configuration.
// See http://go/cq-source-config
message SubtractiveRule {
// Whether to disable hardware test suites.
bool disable_hw_tests = 1;
// Whether to disable virtual machine test suites.
bool disable_vm_tests = 2;
// Prunes away all default suites except those in the provided test groups.
// e.g. setting this to "bluetooth" will have CQ run only those test suites
// in the "bluetooth" test group.
TestGroups only_keep_all_suites_in_groups = 3;
// Prunes away all default suites except one in each provided test group.
// e.g. can be used to ensure a test suite is launched on each of the
// supported ChromeOS processor architectures.
TestGroups only_keep_one_suite_from_each_group = 4;
}
// A descriptive of how to add extra test suites to a CQ run based on source
// configuration. An AdditiveRule will trigger so long as any file matches the
// relevant source pattern. AdditiveRules combine as a union of additional test
// suites to run. disable_by_default=True test suites are particularly relevant
// to AdditiveRules, since AdditiveRules are the only thing that will include
// them.
message AdditiveRule {
// Adds on all test suites in the provided groups, even if they have
// disable_by_default=True.
// e.g. could be used to trigger wificell testing (which is expensive) based
// on the presence of files in wifi-related directories.
TestGroups add_all_suites_in_groups = 1;
// Adds on one test suite from each of the provided groups, even if that suite
// has disable_by_default=True.
// e.g. could be used to trigger wificell testing (which is expensive) on one
// board in each ChromeOS processor architecture.
TestGroups add_one_suite_from_each_group = 2;
}
// A set of test subtractions and additions to perform for a source tree.
// See http://go/cq-source-config for documentation.
message SourceTestRules {
// A file pattern, representing a segment of ChromeOS code.
FilePattern file_pattern = 1;
// A subtractive rule to apply to this file pattern. See the relevant message
// documentation.
SubtractiveRule subtractive_rule = 2;
// An additive rule to apply to this file pattern. See the relevant message
// documentation.
AdditiveRule additive_rule = 3;
}
// Configures test restrictions for all relevant source trees.
// This is the root message.
message SourceTreeTestCfg {
// Rules for how to test changes to specified source trees in the codebase.
repeated SourceTestRules source_test_rules = 2;
reserved 1;
}