blob: e61d6fa3ab3baecb7985ec7ce6f26a24b6bcd272 [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 test_condition;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/test_condition";
import "test/device_condition.proto";
import "test/lab_condition.proto";
// TestCaseSet contains all information about the target test.
message TestCaseSet {
repeated TestCase test_cases = 1;
}
// TestCase contains information about a test case.
message TestCase {
enum Framework {
FRAMEWORK_UNSPECIFIED = 0;
FRAMEWORK_TAST = 1;
}
// Test framework where this test case comes from.
Framework framework = 1;
// Required. The name of this test case. E.g. "ui.ChromeLogin".
string name = 2;
// Describes the dependencies which needs to be satisfied to run this test.
TestCondition condition = 3;
}
// Describes the condition which needs to be satisfied to run a test case.
// The condition is formed in a "Disjunctive normal form".
message TestCondition {
// If an entry in the disjunct_components is satisfied, this condition is
// considered as satisfied. In other words, TestCondition is the "OR" of all
// disjunct_components.
// If there is no entry in disjunct_components, this TestCondition is always
// considered as satisfied.
repeated TestConditionComponent disjuct_components = 1;
}
// Describes one "disjunct component" of the TestCondition, which is the "AND"
// of all its fields.
message TestConditionComponent {
// Represents the condition about device/config.proto.
DeviceConfigCondition device_config = 1;
// Represents the condition about lab/peripherals.proto.
LabPeripheralsCondition lab_peripherals = 2;
}