go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/resultdb/proto/v1/test_variant.pb.go (about)

     1  // Copyright 2021 The LUCI Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.31.0
    18  // 	protoc        v3.21.7
    19  // source: go.chromium.org/luci/resultdb/proto/v1/test_variant.proto
    20  
    21  package resultpb
    22  
    23  import (
    24  	_ "google.golang.org/genproto/googleapis/api/annotations"
    25  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    26  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    27  	reflect "reflect"
    28  	sync "sync"
    29  )
    30  
    31  const (
    32  	// Verify that this generated code is sufficiently up-to-date.
    33  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    34  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    35  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    36  )
    37  
    38  // Status of a test variant.
    39  type TestVariantStatus int32
    40  
    41  const (
    42  	// a test variant must not have this status.
    43  	// This is only used when filtering variants.
    44  	TestVariantStatus_TEST_VARIANT_STATUS_UNSPECIFIED TestVariantStatus = 0
    45  	// The test variant has no exonerations, and all results are unexpected.
    46  	TestVariantStatus_UNEXPECTED TestVariantStatus = 10
    47  	// The test variant has no exonerations, and all results are unexpectedly skipped.
    48  	TestVariantStatus_UNEXPECTEDLY_SKIPPED TestVariantStatus = 20
    49  	// The test variant has no exonerations, and has both expected and unexpected
    50  	// results.
    51  	TestVariantStatus_FLAKY TestVariantStatus = 30
    52  	// The test variant has one or more test exonerations.
    53  	TestVariantStatus_EXONERATED TestVariantStatus = 40
    54  	// A special value that matches any test variant which doesn't have the status
    55  	// EXPECTED. This includes all the above statuses. It will never be present on
    56  	// returned results, it's only for use in predicates.
    57  	TestVariantStatus_UNEXPECTED_MASK TestVariantStatus = 45
    58  	// The test variant has no exonerations, and all results are expected.
    59  	TestVariantStatus_EXPECTED TestVariantStatus = 50
    60  )
    61  
    62  // Enum value maps for TestVariantStatus.
    63  var (
    64  	TestVariantStatus_name = map[int32]string{
    65  		0:  "TEST_VARIANT_STATUS_UNSPECIFIED",
    66  		10: "UNEXPECTED",
    67  		20: "UNEXPECTEDLY_SKIPPED",
    68  		30: "FLAKY",
    69  		40: "EXONERATED",
    70  		45: "UNEXPECTED_MASK",
    71  		50: "EXPECTED",
    72  	}
    73  	TestVariantStatus_value = map[string]int32{
    74  		"TEST_VARIANT_STATUS_UNSPECIFIED": 0,
    75  		"UNEXPECTED":                      10,
    76  		"UNEXPECTEDLY_SKIPPED":            20,
    77  		"FLAKY":                           30,
    78  		"EXONERATED":                      40,
    79  		"UNEXPECTED_MASK":                 45,
    80  		"EXPECTED":                        50,
    81  	}
    82  )
    83  
    84  func (x TestVariantStatus) Enum() *TestVariantStatus {
    85  	p := new(TestVariantStatus)
    86  	*p = x
    87  	return p
    88  }
    89  
    90  func (x TestVariantStatus) String() string {
    91  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    92  }
    93  
    94  func (TestVariantStatus) Descriptor() protoreflect.EnumDescriptor {
    95  	return file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_enumTypes[0].Descriptor()
    96  }
    97  
    98  func (TestVariantStatus) Type() protoreflect.EnumType {
    99  	return &file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_enumTypes[0]
   100  }
   101  
   102  func (x TestVariantStatus) Number() protoreflect.EnumNumber {
   103  	return protoreflect.EnumNumber(x)
   104  }
   105  
   106  // Deprecated: Use TestVariantStatus.Descriptor instead.
   107  func (TestVariantStatus) EnumDescriptor() ([]byte, []int) {
   108  	return file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescGZIP(), []int{0}
   109  }
   110  
   111  // Represents a matching test variant with its outcomes.
   112  type TestVariant struct {
   113  	state         protoimpl.MessageState
   114  	sizeCache     protoimpl.SizeCache
   115  	unknownFields protoimpl.UnknownFields
   116  
   117  	// A unique identifier of the test in a LUCI project.
   118  	// Regex: ^[[::print::]]{1,256}$
   119  	//
   120  	// Refer to TestResult.test_id for details.
   121  	TestId string `protobuf:"bytes,1,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"`
   122  	// Description of one specific way of running the test,
   123  	// e.g. a specific bucket, builder and a test suite.
   124  	Variant *Variant `protobuf:"bytes,2,opt,name=variant,proto3" json:"variant,omitempty"`
   125  	// Hash of the variant.
   126  	// hex(sha256(sorted(”.join('%s:%s\n' for k, v in variant.items())))).
   127  	VariantHash string `protobuf:"bytes,3,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"`
   128  	// Status of the test variant.
   129  	Status TestVariantStatus `protobuf:"varint,4,opt,name=status,proto3,enum=luci.resultdb.v1.TestVariantStatus" json:"status,omitempty"`
   130  	// Outcomes of the test variant.
   131  	Results []*TestResultBundle `protobuf:"bytes,5,rep,name=results,proto3" json:"results,omitempty"`
   132  	// Test exonerations if any test variant is exonerated.
   133  	Exonerations []*TestExoneration `protobuf:"bytes,6,rep,name=exonerations,proto3" json:"exonerations,omitempty"`
   134  	// Information about the test at the time of its execution.
   135  	//
   136  	// All test results of the same test variant should report the same test
   137  	// metadata. This RPC relies on this rule and returns test metadata from
   138  	// *arbitrary* result of the test variant.
   139  	TestMetadata *TestMetadata `protobuf:"bytes,7,opt,name=test_metadata,json=testMetadata,proto3" json:"test_metadata,omitempty"`
   140  	// Whether the
   141  	//   - test metadata; or
   142  	//   - the variant definition; or
   143  	//   - both the test metadata and variant definition
   144  	//
   145  	// have been masked from the test variant.
   146  	//
   147  	// Output only.
   148  	IsMasked bool `protobuf:"varint,8,opt,name=is_masked,json=isMasked,proto3" json:"is_masked,omitempty"`
   149  	// The identity of the code sources tested. This ID can be used
   150  	// to lookup of the actual sources in QueryTestVariantsResponse.sources.
   151  	//
   152  	// All test results of the same test variant should be attached to the same
   153  	// sources (via their respective invocation(s)). This RPC relies upon this
   154  	// and returns sources from an *arbitrary* result of the test variant.
   155  	//
   156  	// If the code sources tested are not available, this field is blank.
   157  	SourcesId string `protobuf:"bytes,9,opt,name=sources_id,json=sourcesId,proto3" json:"sources_id,omitempty"`
   158  }
   159  
   160  func (x *TestVariant) Reset() {
   161  	*x = TestVariant{}
   162  	if protoimpl.UnsafeEnabled {
   163  		mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[0]
   164  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   165  		ms.StoreMessageInfo(mi)
   166  	}
   167  }
   168  
   169  func (x *TestVariant) String() string {
   170  	return protoimpl.X.MessageStringOf(x)
   171  }
   172  
   173  func (*TestVariant) ProtoMessage() {}
   174  
   175  func (x *TestVariant) ProtoReflect() protoreflect.Message {
   176  	mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[0]
   177  	if protoimpl.UnsafeEnabled && x != nil {
   178  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   179  		if ms.LoadMessageInfo() == nil {
   180  			ms.StoreMessageInfo(mi)
   181  		}
   182  		return ms
   183  	}
   184  	return mi.MessageOf(x)
   185  }
   186  
   187  // Deprecated: Use TestVariant.ProtoReflect.Descriptor instead.
   188  func (*TestVariant) Descriptor() ([]byte, []int) {
   189  	return file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescGZIP(), []int{0}
   190  }
   191  
   192  func (x *TestVariant) GetTestId() string {
   193  	if x != nil {
   194  		return x.TestId
   195  	}
   196  	return ""
   197  }
   198  
   199  func (x *TestVariant) GetVariant() *Variant {
   200  	if x != nil {
   201  		return x.Variant
   202  	}
   203  	return nil
   204  }
   205  
   206  func (x *TestVariant) GetVariantHash() string {
   207  	if x != nil {
   208  		return x.VariantHash
   209  	}
   210  	return ""
   211  }
   212  
   213  func (x *TestVariant) GetStatus() TestVariantStatus {
   214  	if x != nil {
   215  		return x.Status
   216  	}
   217  	return TestVariantStatus_TEST_VARIANT_STATUS_UNSPECIFIED
   218  }
   219  
   220  func (x *TestVariant) GetResults() []*TestResultBundle {
   221  	if x != nil {
   222  		return x.Results
   223  	}
   224  	return nil
   225  }
   226  
   227  func (x *TestVariant) GetExonerations() []*TestExoneration {
   228  	if x != nil {
   229  		return x.Exonerations
   230  	}
   231  	return nil
   232  }
   233  
   234  func (x *TestVariant) GetTestMetadata() *TestMetadata {
   235  	if x != nil {
   236  		return x.TestMetadata
   237  	}
   238  	return nil
   239  }
   240  
   241  func (x *TestVariant) GetIsMasked() bool {
   242  	if x != nil {
   243  		return x.IsMasked
   244  	}
   245  	return false
   246  }
   247  
   248  func (x *TestVariant) GetSourcesId() string {
   249  	if x != nil {
   250  		return x.SourcesId
   251  	}
   252  	return ""
   253  }
   254  
   255  // Outcomes of an execution of the test variant.
   256  type TestResultBundle struct {
   257  	state         protoimpl.MessageState
   258  	sizeCache     protoimpl.SizeCache
   259  	unknownFields protoimpl.UnknownFields
   260  
   261  	// Result of the test variant execution.
   262  	Result *TestResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
   263  }
   264  
   265  func (x *TestResultBundle) Reset() {
   266  	*x = TestResultBundle{}
   267  	if protoimpl.UnsafeEnabled {
   268  		mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[1]
   269  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   270  		ms.StoreMessageInfo(mi)
   271  	}
   272  }
   273  
   274  func (x *TestResultBundle) String() string {
   275  	return protoimpl.X.MessageStringOf(x)
   276  }
   277  
   278  func (*TestResultBundle) ProtoMessage() {}
   279  
   280  func (x *TestResultBundle) ProtoReflect() protoreflect.Message {
   281  	mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[1]
   282  	if protoimpl.UnsafeEnabled && x != nil {
   283  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   284  		if ms.LoadMessageInfo() == nil {
   285  			ms.StoreMessageInfo(mi)
   286  		}
   287  		return ms
   288  	}
   289  	return mi.MessageOf(x)
   290  }
   291  
   292  // Deprecated: Use TestResultBundle.ProtoReflect.Descriptor instead.
   293  func (*TestResultBundle) Descriptor() ([]byte, []int) {
   294  	return file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescGZIP(), []int{1}
   295  }
   296  
   297  func (x *TestResultBundle) GetResult() *TestResult {
   298  	if x != nil {
   299  		return x.Result
   300  	}
   301  	return nil
   302  }
   303  
   304  // Represents a function TestVariant -> bool.
   305  // Empty message matches all test variants.
   306  type TestVariantPredicate struct {
   307  	state         protoimpl.MessageState
   308  	sizeCache     protoimpl.SizeCache
   309  	unknownFields protoimpl.UnknownFields
   310  
   311  	// A test variant must have this status.
   312  	Status TestVariantStatus `protobuf:"varint,1,opt,name=status,proto3,enum=luci.resultdb.v1.TestVariantStatus" json:"status,omitempty"`
   313  }
   314  
   315  func (x *TestVariantPredicate) Reset() {
   316  	*x = TestVariantPredicate{}
   317  	if protoimpl.UnsafeEnabled {
   318  		mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[2]
   319  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   320  		ms.StoreMessageInfo(mi)
   321  	}
   322  }
   323  
   324  func (x *TestVariantPredicate) String() string {
   325  	return protoimpl.X.MessageStringOf(x)
   326  }
   327  
   328  func (*TestVariantPredicate) ProtoMessage() {}
   329  
   330  func (x *TestVariantPredicate) ProtoReflect() protoreflect.Message {
   331  	mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[2]
   332  	if protoimpl.UnsafeEnabled && x != nil {
   333  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   334  		if ms.LoadMessageInfo() == nil {
   335  			ms.StoreMessageInfo(mi)
   336  		}
   337  		return ms
   338  	}
   339  	return mi.MessageOf(x)
   340  }
   341  
   342  // Deprecated: Use TestVariantPredicate.ProtoReflect.Descriptor instead.
   343  func (*TestVariantPredicate) Descriptor() ([]byte, []int) {
   344  	return file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescGZIP(), []int{2}
   345  }
   346  
   347  func (x *TestVariantPredicate) GetStatus() TestVariantStatus {
   348  	if x != nil {
   349  		return x.Status
   350  	}
   351  	return TestVariantStatus_TEST_VARIANT_STATUS_UNSPECIFIED
   352  }
   353  
   354  var File_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto protoreflect.FileDescriptor
   355  
   356  var file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDesc = []byte{
   357  	0x0a, 0x39, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
   358  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f,
   359  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61,
   360  	0x72, 0x69, 0x61, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63,
   361  	0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67,
   362  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
   363  	0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33,
   364  	0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f,
   365  	0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72,
   366  	0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72,
   367  	0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d,
   368  	0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
   369  	0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74,
   370  	0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
   371  	0x38, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67,
   372  	0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70,
   373  	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73,
   374  	0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc6, 0x03, 0x0a, 0x0b, 0x54, 0x65,
   375  	0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x73,
   376  	0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74,
   377  	0x49, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20,
   378  	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c,
   379  	0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x07,
   380  	0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61,
   381  	0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76,
   382  	0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74,
   383  	0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x75, 0x63,
   384  	0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65,
   385  	0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
   386  	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c,
   387  	0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e,
   388  	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74,
   389  	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x07, 0x72, 0x65,
   390  	0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61,
   391  	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x75,
   392  	0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54,
   393  	0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c,
   394  	0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x0d,
   395  	0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20,
   396  	0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c,
   397  	0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64,
   398  	0x61, 0x74, 0x61, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
   399  	0x61, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x18, 0x08,
   400  	0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4d, 0x61, 0x73,
   401  	0x6b, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x69,
   402  	0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
   403  	0x49, 0x64, 0x22, 0x48, 0x0a, 0x10, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
   404  	0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
   405  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65,
   406  	0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
   407  	0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x53, 0x0a, 0x14,
   408  	0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69,
   409  	0x63, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01,
   410  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75,
   411  	0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69,
   412  	0x61, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
   413  	0x73, 0x2a, 0xa0, 0x01, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e,
   414  	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x54, 0x45, 0x53, 0x54, 0x5f,
   415  	0x56, 0x41, 0x52, 0x49, 0x41, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55,
   416  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a,
   417  	0x55, 0x4e, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x18, 0x0a, 0x14,
   418  	0x55, 0x4e, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x45, 0x44, 0x4c, 0x59, 0x5f, 0x53, 0x4b, 0x49,
   419  	0x50, 0x50, 0x45, 0x44, 0x10, 0x14, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x41, 0x4b, 0x59, 0x10,
   420  	0x1e, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x58, 0x4f, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x45, 0x44, 0x10,
   421  	0x28, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f,
   422  	0x4d, 0x41, 0x53, 0x4b, 0x10, 0x2d, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54,
   423  	0x45, 0x44, 0x10, 0x32, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
   424  	0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73,
   425  	0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x3b, 0x72,
   426  	0x65, 0x73, 0x75, 0x6c, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   427  }
   428  
   429  var (
   430  	file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescOnce sync.Once
   431  	file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescData = file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDesc
   432  )
   433  
   434  func file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescGZIP() []byte {
   435  	file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescOnce.Do(func() {
   436  		file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescData)
   437  	})
   438  	return file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDescData
   439  }
   440  
   441  var file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   442  var file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
   443  var file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_goTypes = []interface{}{
   444  	(TestVariantStatus)(0),       // 0: luci.resultdb.v1.TestVariantStatus
   445  	(*TestVariant)(nil),          // 1: luci.resultdb.v1.TestVariant
   446  	(*TestResultBundle)(nil),     // 2: luci.resultdb.v1.TestResultBundle
   447  	(*TestVariantPredicate)(nil), // 3: luci.resultdb.v1.TestVariantPredicate
   448  	(*Variant)(nil),              // 4: luci.resultdb.v1.Variant
   449  	(*TestExoneration)(nil),      // 5: luci.resultdb.v1.TestExoneration
   450  	(*TestMetadata)(nil),         // 6: luci.resultdb.v1.TestMetadata
   451  	(*TestResult)(nil),           // 7: luci.resultdb.v1.TestResult
   452  }
   453  var file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_depIdxs = []int32{
   454  	4, // 0: luci.resultdb.v1.TestVariant.variant:type_name -> luci.resultdb.v1.Variant
   455  	0, // 1: luci.resultdb.v1.TestVariant.status:type_name -> luci.resultdb.v1.TestVariantStatus
   456  	2, // 2: luci.resultdb.v1.TestVariant.results:type_name -> luci.resultdb.v1.TestResultBundle
   457  	5, // 3: luci.resultdb.v1.TestVariant.exonerations:type_name -> luci.resultdb.v1.TestExoneration
   458  	6, // 4: luci.resultdb.v1.TestVariant.test_metadata:type_name -> luci.resultdb.v1.TestMetadata
   459  	7, // 5: luci.resultdb.v1.TestResultBundle.result:type_name -> luci.resultdb.v1.TestResult
   460  	0, // 6: luci.resultdb.v1.TestVariantPredicate.status:type_name -> luci.resultdb.v1.TestVariantStatus
   461  	7, // [7:7] is the sub-list for method output_type
   462  	7, // [7:7] is the sub-list for method input_type
   463  	7, // [7:7] is the sub-list for extension type_name
   464  	7, // [7:7] is the sub-list for extension extendee
   465  	0, // [0:7] is the sub-list for field type_name
   466  }
   467  
   468  func init() { file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_init() }
   469  func file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_init() {
   470  	if File_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto != nil {
   471  		return
   472  	}
   473  	file_go_chromium_org_luci_resultdb_proto_v1_common_proto_init()
   474  	file_go_chromium_org_luci_resultdb_proto_v1_test_metadata_proto_init()
   475  	file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_init()
   476  	if !protoimpl.UnsafeEnabled {
   477  		file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   478  			switch v := v.(*TestVariant); i {
   479  			case 0:
   480  				return &v.state
   481  			case 1:
   482  				return &v.sizeCache
   483  			case 2:
   484  				return &v.unknownFields
   485  			default:
   486  				return nil
   487  			}
   488  		}
   489  		file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   490  			switch v := v.(*TestResultBundle); i {
   491  			case 0:
   492  				return &v.state
   493  			case 1:
   494  				return &v.sizeCache
   495  			case 2:
   496  				return &v.unknownFields
   497  			default:
   498  				return nil
   499  			}
   500  		}
   501  		file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   502  			switch v := v.(*TestVariantPredicate); i {
   503  			case 0:
   504  				return &v.state
   505  			case 1:
   506  				return &v.sizeCache
   507  			case 2:
   508  				return &v.unknownFields
   509  			default:
   510  				return nil
   511  			}
   512  		}
   513  	}
   514  	type x struct{}
   515  	out := protoimpl.TypeBuilder{
   516  		File: protoimpl.DescBuilder{
   517  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   518  			RawDescriptor: file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDesc,
   519  			NumEnums:      1,
   520  			NumMessages:   3,
   521  			NumExtensions: 0,
   522  			NumServices:   0,
   523  		},
   524  		GoTypes:           file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_goTypes,
   525  		DependencyIndexes: file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_depIdxs,
   526  		EnumInfos:         file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_enumTypes,
   527  		MessageInfos:      file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_msgTypes,
   528  	}.Build()
   529  	File_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto = out.File
   530  	file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_rawDesc = nil
   531  	file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_goTypes = nil
   532  	file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_depIdxs = nil
   533  }