blob: 7c3bedcf0ca8a064038b92715075efb89858f5b5 [file] [log] [blame]
// Copyright 2019 The Chromium OS Authors. All rights reserved.
// 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 "google/protobuf/wrappers.proto";
message TestSuiteCommon {
// Human-readable consistent name for a build target, test type pair.
string display_name = 1;
// Whether or not the test suite is considered critical.
google.protobuf.BoolValue critical = 2;
message TestSuiteGroup {
string test_suite_group = 1;
}
// A list of groups to which this test suite belongs.
// This is a key into other testingconfig modules.
repeated TestSuiteGroup test_suite_groups = 3;
// Whether this suite should be disabled by default. It will only be enabled
// if some other rule forces it to be put into the test plan.
bool disable_by_default = 4;
}
message HwTestCfg {
enum HwTestSuiteType {
HW_TEST_SUITE_TYPE_UNSPECIFIED = 0;
AUTOTEST = 1;
TAST = 2;
}
// Configuration for a hardware test suite.
message HwTest {
TestSuiteCommon common = 12;
// Name of the test suite to run.
string suite = 1;
// The key that identifies a distinct type of device in Skylab.
// Skylab uses the term "board", hence use of this otherwise controversial
// word.
// e.g. could use device_target 'caroline' to test the build_target
// 'caroline-arcnext'.
string skylab_board = 11;
HwTestSuiteType hw_test_suite_type = 13;
reserved 2 to 10;
}
repeated HwTest hw_test = 1;
}
message MoblabVmTestCfg {
message MoblabTest {
TestSuiteCommon common = 3;
// Test type to be run.
string test_type = 1;
reserved 2;
}
repeated MoblabTest moblab_test = 1;
}
message TastVmTestCfg {
message TastTestExpr {
// A single tast test expression. See https://goo.gl/UPNEgT
string test_expr = 1;
}
message TastVmTest {
TestSuiteCommon common = 4;
// String containing short human-readable name describing test suite.
string suite_name = 1;
// List of string expressions describing which tests to run; this
// is passed directly to the 'tast run' command. See
// https://goo.gl/UPNEgT for info about test expressions.
repeated TastTestExpr tast_test_expr = 2;
reserved 3;
}
repeated TastVmTest tast_vm_test = 1;
}
message VmTestCfg {
message VmTest {
TestSuiteCommon common = 8;
// Test suite to be run in VMTest.
string test_suite = 2;
reserved 1, 3 to 7;
}
repeated VmTest vm_test = 1;
}
// Specifies a CrOS builder to target.
message TargetCriteria {
// DEPRECATED: we need to target builder_name instead. build_target
// has to go away. See https://crbug.com/1016536
oneof target_type {
// Any CrOS build target, such as "kevin". This should correspond to a
// Portage overlay.
string build_target = 2;
}
// A CrOS builder to target for testing, e.g. eve-postsubmit or
// amd64-generic-kernel-v5_4-cq.
string builder_name = 3;
}
// Details which testing is needed for a single CrOS build target.
message PerTargetTestRequirements {
// Specifies the crieria for builds to target for testing.
TargetCriteria target_criteria = 1;
// These configure what testing is needed for these BuildCriteria.
HwTestCfg hw_test_cfg = 3;
MoblabVmTestCfg moblab_vm_test_cfg = 4;
VmTestCfg vm_test_cfg = 5;
TastVmTestCfg tast_vm_test_cfg = 6;
TastVmTestCfg direct_tast_vm_test_cfg = 7;
reserved 2;
}
// A listing of all testing that should be done for all CrOS builds.
message TargetTestRequirementsCfg {
// The testing that should be performed for a single set of target criteria.
repeated PerTargetTestRequirements per_target_test_requirements = 1;
}