| syntax = "proto3"; |
| option go_package = "github.com/GoogleCloudPlatform/testgrid/pb/custom_evaluator"; |
| |
| import "pb/test_status/test_status.proto"; |
| |
| // A configuration sub-object used to do custom evaluation of test results. |
| |
| // A collection of Rule objects. Used to define many rules. |
| message RuleSet { repeated Rule rules = 1; } |
| |
| // A single rule that describes how to evaluate a test_cases_pb2.TestResult |
| message Rule { |
| // Multiple comparisons to run against a result. EVERY TestResultComparison |
| // has to succeed for this Rule to succeed. |
| repeated TestResultComparison test_result_comparisons = 1; |
| |
| // Required: The TestStatus to return if the comparison succeeds. |
| TestStatus computed_status = 3; |
| } |
| |
| // Describes how to get information the TestResult proto and how to compare the |
| // value against the comparison value. |
| message TestResultComparison { |
| // Required: This is the comparison that will be used as |
| Comparison comparison = 1; |
| |
| oneof test_result_info { |
| // The name of the property to evaluate. |
| // Properties are usually strings, so a string comparison is assumed and |
| // required. |
| string property_key = 2; |
| |
| // This will find the scalar field with the given name within the TestResult |
| // proto. The value of that field will be used to evaluate. |
| // |
| // Accepted junit values for junit results are: |
| // name: name of the test case |
| // error_count: 1 if the test case has an error message |
| // failure_count: 1 if the test case has a failure message |
| // |
| // NOTE: Only supported for string and numerical values. |
| string test_result_field = 3; |
| |
| // This will find the field nested within the first error of the TestResult |
| // proto. The value of that field will be used to evaluate. |
| // |
| // Accepted values for junit results are: |
| // exception_type: the failure and/or error message. |
| // |
| // NOTE: Only supported for string and numerical values |
| string test_result_error_field = 4; |
| } |
| } |
| |
| // The method of comparison used for evaluation. Describes how to compare two |
| // values. |
| message Comparison { |
| enum Operator { |
| // Unknown. May assume OP_EQ for legacy purposes, but should warn. |
| OP_UNKNOWN = 0; |
| |
| // Equals operator. |
| OP_EQ = 1; |
| |
| // Not equals operator. |
| OP_NE = 2; |
| |
| // Comparison value less than TestResult's value |
| OP_LT = 3; |
| |
| // Comparison value less than or equal TestResult's value |
| OP_LE = 4; |
| |
| // Comparison value greater than TestResult's value |
| OP_GT = 5; |
| |
| // Comparison value greater than or equal TestResult's value |
| OP_GE = 6; |
| |
| // Regex match of Comparison.value string with the TestResult's evaluation |
| // value string. |
| OP_REGEX = 7; |
| |
| // Checks to see if the evaluation value string starts with the |
| // Comparison.value string |
| OP_STARTS_WITH = 8; |
| |
| // Checks to see if the evaluation value string is contained within the |
| // Comparison.value string |
| OP_CONTAINS = 9; |
| } |
| |
| // Required: Defines how to compare two attributes. |
| // When the TestResult value is numerical, numerical_value will be used to |
| // compare. When the TestResult value is a string, string_value will be used. |
| Operator op = 1; |
| |
| oneof comparison_value { |
| // For operations EQ, NE, REGEX, STARTS_WITH, CONTAINS |
| string string_value = 2; |
| |
| // For operations EQ, NE, LT, LE, GT, GE |
| double numerical_value = 3; |
| } |
| } |