blob: c3891eb4f67fbd48348ed3a2b3f18b81b1cd74fc [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.
// This file contains the schame to represent the condition which should match
// with the Config in device/config.proto.
syntax = "proto3";
package test_condition;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/test_condition";
import "device/config.proto";
// Represents the condition of device.Config message. If all conditions for
// each field are satisfied, this message is considered as satisfied.
message DeviceConfigCondition {
// Condition of device.ConfigId. This condition needs to be satisfied by
// device.Config.id.
ConfigIdCondition id = 1;
// If this is not FORM_FACTOR_UNSPECIFIED, form_factor and
// device.Config.form_factor must have same value.
device.Config.FormFactor form_factor = 2;
// If not empty, the value of device.Config.form_factor must not be
// contained in this field.
repeated device.Config.FormFactor no_form_factors = 3;
// If not empty, gpu_family and device.Config.gpu_family must have same
// value.
string gpu_family = 4;
// If not empty, the value of device.Config.gpu_family must not be
// contained in this field.
repeated string no_gpu_families = 5;
// If this is not GRAPHICS_UNSPECIFIED, graphics and device.Config.graphics
// must have same value.
device.Config.Graphics graphics = 6;
// If not empty, the value of device.Config.graphics must not be contained
// in this field.
repeated device.Config.Graphics no_graphics = 7;
// If not empty, all values in this field must be contained in the
// device.Config.hardware_features list.
repeated device.Config.HardwareFeature hardware_features = 8;
// If not emtpy, any value in device.Config.hardware_features must not be
// contained in this field.
repeated device.Config.HardwareFeature no_hardware_features = 9;
// If this is not POWER_SUPPLY_UNSPECIFIED, power and device.Config.power
// must have same value.
device.Config.PowerSupply power = 10;
// If not empty, the value of device.Config.power must not be contained in
// this field.
repeated device.Config.PowerSupply no_powers = 11;
// If this is not STORAGE_UNSPECIFIED, storage and device.Condition.storage
// must have same value.
device.Config.Storage storage = 12;
// If not empty, the value of device.Config.storage must not be contained
// in this field.
repeated device.Config.Storage no_storages = 13;
// If not empty, all values in this field must be contained in the
// device.Config.video_accelerator_supports.
repeated device.Config.VideoAcceleration video_acceleration_supports = 14;
// If not empty, any value in device.Config.video_acceleration_supports
// must not be contained in this field.
repeated device.Config.VideoAcceleration no_video_acceleration_supports = 15;
// If this is not SOC_UNSPECIFIED, soc and device.Config.soc must have same
// value.
device.Config.SOC soc = 16;
// If not empty, the value of device.Config.soc must not be contained in
// this field.
repeated device.Config.SOC no_socs = 17;
}
// Represents the condition of device.ConfigId message. If all conditions for
// each field are satisfied, this message is considered as satisfied.
// chromeos/infra/config has similar feature, i.e. disabling tests by DUT
// models. The big difference is; this configuration is provided from tests,
// and specifically it is branched. chromeos/infra/config is not branched.
// The majar use case of chromeos/infra/config is to disable whole tests on
// a specific types DUT due to, e.g., lab/infra issues.
// Example use case of this condition is; if there is a known issue in a
// third_party drive only on some specific board, but it is expected that the
// fix of the issue would take time. This condition can be used to disable
// the test for such a case.
// On the other hand, chromeos/infra/config is expected to be used for
// disabling tests on a specific board, regardless of versions, because of
// temporaly infra/lab issue, for example.
message ConfigIdCondition {
// Condition of device.PlatformId. This condition needs to be satisfied by
// device.ConfigId.platform_id.
PlatformIdCondition platform_id = 1;
// Condition of device.ModelId. This condition needs to be satisfied by
// device.ConfigId.model_id.
ModelIdCondition model_id = 2;
// Condition of device.VariantId. This condition needs to be satisfied by
// device.ConfigId.variant_id.
VariantIdCondition variant_id = 3;
// Condition of device.BrandId. This condition needs to be satisfied by
// device.ConfigId.brand_id.
BrandIdCondition brand_id = 4;
}
// Represents the condition of device.PlatformId message. If all conditions for
// each field are satisfied, this message is considered as satisfied.
message PlatformIdCondition {
// If not empty, value and device.ConfigId.value must have same value.
string value = 1;
// If not empty, the value of device.ConfigId.value must not be contained
// in this field.
repeated string no_values = 2;
}
// Represents the condition of device.ModelId message. If all conditions for
// each field are satisfied, this message is considered as satisfied.
message ModelIdCondition {
// If not empty, value and device.ConfigId.value must have same value.
string value = 1;
// If not empty, the value of device.ConfigId.value must not be contained
// in this field.
repeated string no_values = 2;
}
// Represents the condition of device.VariantId message. If all conditions for
// each field are satisfied, this message is considered as satisfied.
message VariantIdCondition {
// If not empty, value and device.ConfigId.value must have same value.
string value = 1;
// If not empty, the value of device.ConfigId.value must not be contained
// in this field.
repeated string no_values = 2;
}
// Represents the condition of device.BrandId message. If all conditions for
// each field are satisfied, this message is considered as satisfied.
message BrandIdCondition {
// If not empty, value and device.ConfigId.value must have same value.
string value = 1;
// If not empty, the value of device.ConfigId.value must not be contained
// in this field.
repeated string no_values = 2;
}