go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/resultdb/proto/v1/test_result.pb.go (about) 1 // Copyright 2019 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_result.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 durationpb "google.golang.org/protobuf/types/known/durationpb" 28 structpb "google.golang.org/protobuf/types/known/structpb" 29 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 30 reflect "reflect" 31 sync "sync" 32 ) 33 34 const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39 ) 40 41 // Machine-readable status of a test result. 42 type TestStatus int32 43 44 const ( 45 // Status was not specified. 46 // Not to be used in actual test results; serves as a default value for an 47 // unset field. 48 TestStatus_STATUS_UNSPECIFIED TestStatus = 0 49 // The test case has passed. 50 TestStatus_PASS TestStatus = 1 51 // The test case has failed. 52 // Suggests that the code under test is incorrect, but it is also possible 53 // that the test is incorrect or it is a flake. 54 TestStatus_FAIL TestStatus = 2 55 // The test case has crashed during execution. 56 // The outcome is inconclusive: the code under test might or might not be 57 // correct, but the test+code is incorrect. 58 TestStatus_CRASH TestStatus = 3 59 // The test case has started, but was aborted before finishing. 60 // A common reason: timeout. 61 TestStatus_ABORT TestStatus = 4 62 // The test case did not execute. 63 // Examples: 64 // - The execution of the collection of test cases, such as a test 65 // binary, was aborted prematurely and execution of some test cases was 66 // skipped. 67 // - The test harness configuration specified that the test case MUST be 68 // skipped. 69 TestStatus_SKIP TestStatus = 5 70 ) 71 72 // Enum value maps for TestStatus. 73 var ( 74 TestStatus_name = map[int32]string{ 75 0: "STATUS_UNSPECIFIED", 76 1: "PASS", 77 2: "FAIL", 78 3: "CRASH", 79 4: "ABORT", 80 5: "SKIP", 81 } 82 TestStatus_value = map[string]int32{ 83 "STATUS_UNSPECIFIED": 0, 84 "PASS": 1, 85 "FAIL": 2, 86 "CRASH": 3, 87 "ABORT": 4, 88 "SKIP": 5, 89 } 90 ) 91 92 func (x TestStatus) Enum() *TestStatus { 93 p := new(TestStatus) 94 *p = x 95 return p 96 } 97 98 func (x TestStatus) String() string { 99 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 100 } 101 102 func (TestStatus) Descriptor() protoreflect.EnumDescriptor { 103 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes[0].Descriptor() 104 } 105 106 func (TestStatus) Type() protoreflect.EnumType { 107 return &file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes[0] 108 } 109 110 func (x TestStatus) Number() protoreflect.EnumNumber { 111 return protoreflect.EnumNumber(x) 112 } 113 114 // Deprecated: Use TestStatus.Descriptor instead. 115 func (TestStatus) EnumDescriptor() ([]byte, []int) { 116 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescGZIP(), []int{0} 117 } 118 119 // Machine-readable reason that a test execution was skipped. 120 // Only reasons actually used are listed here, if you need a new reason 121 // please add it here and send a CL to the OWNERS. 122 type SkipReason int32 123 124 const ( 125 // Skip reason was not specified. 126 // This represents an unset field which should be used for non-skip test 127 // result statuses. It can also be used if none of the other statuses 128 // apply. 129 SkipReason_SKIP_REASON_UNSPECIFIED SkipReason = 0 130 // Disabled automatically in response to a test skipping policy that skips 131 // flaky tests. 132 // Used for ChromeOS CQ test filtering. 133 SkipReason_AUTOMATICALLY_DISABLED_FOR_FLAKINESS SkipReason = 1 134 ) 135 136 // Enum value maps for SkipReason. 137 var ( 138 SkipReason_name = map[int32]string{ 139 0: "SKIP_REASON_UNSPECIFIED", 140 1: "AUTOMATICALLY_DISABLED_FOR_FLAKINESS", 141 } 142 SkipReason_value = map[string]int32{ 143 "SKIP_REASON_UNSPECIFIED": 0, 144 "AUTOMATICALLY_DISABLED_FOR_FLAKINESS": 1, 145 } 146 ) 147 148 func (x SkipReason) Enum() *SkipReason { 149 p := new(SkipReason) 150 *p = x 151 return p 152 } 153 154 func (x SkipReason) String() string { 155 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 156 } 157 158 func (SkipReason) Descriptor() protoreflect.EnumDescriptor { 159 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes[1].Descriptor() 160 } 161 162 func (SkipReason) Type() protoreflect.EnumType { 163 return &file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes[1] 164 } 165 166 func (x SkipReason) Number() protoreflect.EnumNumber { 167 return protoreflect.EnumNumber(x) 168 } 169 170 // Deprecated: Use SkipReason.Descriptor instead. 171 func (SkipReason) EnumDescriptor() ([]byte, []int) { 172 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescGZIP(), []int{1} 173 } 174 175 // Reason why a test variant was exonerated. 176 type ExonerationReason int32 177 178 const ( 179 // Reason was not specified. 180 // Not to be used in actual test exonerations; serves as a default value for 181 // an unset field. 182 ExonerationReason_EXONERATION_REASON_UNSPECIFIED ExonerationReason = 0 183 // Similar unexpected results were observed on a mainline branch 184 // (i.e. against a build without unsubmitted changes applied). 185 // (For avoidance of doubt, this includes both flakily and 186 // deterministically occurring unexpected results.) 187 // Applies to unexpected results in presubmit/CQ runs only. 188 ExonerationReason_OCCURS_ON_MAINLINE ExonerationReason = 1 189 // Similar unexpected results were observed in presubmit run(s) for other, 190 // unrelated CL(s). (This is suggestive of the issue being present 191 // on mainline but is not confirmed as there are possible confounding 192 // factors, like how tests are run on CLs vs how tests are run on 193 // mainline branches.) 194 // Applies to unexpected results in presubmit/CQ runs only. 195 ExonerationReason_OCCURS_ON_OTHER_CLS ExonerationReason = 2 196 // The tests are not critical to the test subject (e.g. CL) passing. 197 // This could be because more data is being collected to determine if 198 // the tests are stable enough to be made critical (as is often the 199 // case for experimental test suites). 200 // If information exists indicating the tests are producing unexpected 201 // results, and the tests are not critical for that reason, 202 // prefer more specific reasons OCCURS_ON_MAINLINE or OCCURS_ON_OTHER_CLS. 203 ExonerationReason_NOT_CRITICAL ExonerationReason = 3 204 // The test result was an unexpected pass. (Note that such an exoneration is 205 // not automatically created for unexpected passes, unless the option is 206 // specified to ResultSink or the project manually creates one). 207 ExonerationReason_UNEXPECTED_PASS ExonerationReason = 4 208 ) 209 210 // Enum value maps for ExonerationReason. 211 var ( 212 ExonerationReason_name = map[int32]string{ 213 0: "EXONERATION_REASON_UNSPECIFIED", 214 1: "OCCURS_ON_MAINLINE", 215 2: "OCCURS_ON_OTHER_CLS", 216 3: "NOT_CRITICAL", 217 4: "UNEXPECTED_PASS", 218 } 219 ExonerationReason_value = map[string]int32{ 220 "EXONERATION_REASON_UNSPECIFIED": 0, 221 "OCCURS_ON_MAINLINE": 1, 222 "OCCURS_ON_OTHER_CLS": 2, 223 "NOT_CRITICAL": 3, 224 "UNEXPECTED_PASS": 4, 225 } 226 ) 227 228 func (x ExonerationReason) Enum() *ExonerationReason { 229 p := new(ExonerationReason) 230 *p = x 231 return p 232 } 233 234 func (x ExonerationReason) String() string { 235 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 236 } 237 238 func (ExonerationReason) Descriptor() protoreflect.EnumDescriptor { 239 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes[2].Descriptor() 240 } 241 242 func (ExonerationReason) Type() protoreflect.EnumType { 243 return &file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes[2] 244 } 245 246 func (x ExonerationReason) Number() protoreflect.EnumNumber { 247 return protoreflect.EnumNumber(x) 248 } 249 250 // Deprecated: Use ExonerationReason.Descriptor instead. 251 func (ExonerationReason) EnumDescriptor() ([]byte, []int) { 252 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescGZIP(), []int{2} 253 } 254 255 // A result of a functional test case. 256 // Often a single test case is executed multiple times and has multiple results, 257 // a single test suite has multiple test cases, 258 // and the same test suite can be executed in different variants 259 // (OS, GPU, compile flags, etc). 260 // 261 // This message does not specify the test id. 262 // It should be available in the message that embeds this message. 263 // 264 // Next id: 17. 265 type TestResult struct { 266 state protoimpl.MessageState 267 sizeCache protoimpl.SizeCache 268 unknownFields protoimpl.UnknownFields 269 270 // Can be used to refer to this test result, e.g. in ResultDB.GetTestResult 271 // RPC. 272 // Format: 273 // "invocations/{INVOCATION_ID}/tests/{URL_ESCAPED_TEST_ID}/results/{RESULT_ID}". 274 // where URL_ESCAPED_TEST_ID is test_id escaped with 275 // https://golang.org/pkg/net/url/#PathEscape See also https://aip.dev/122. 276 // 277 // Output only. 278 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 279 // Test id, a unique identifier of the test in a LUCI project. 280 // Regex: ^[[::print::]]{1,512}$ 281 // 282 // If two tests have a common test id prefix that ends with a 283 // non-alphanumeric character, they considered a part of a group. Examples: 284 // - "a/b/c" 285 // - "a/b/d" 286 // - "a/b/e:x" 287 // - "a/b/e:y" 288 // - "a/f" 289 // This defines the following groups: 290 // - All items belong to one group because of the common prefix "a/" 291 // - Within that group, the first 4 form a sub-group because of the common 292 // prefix "a/b/" 293 // - Within that group, "a/b/e:x" and "a/b/e:y" form a sub-group because of 294 // the common prefix "a/b/e:". 295 // 296 // This can be used in UI. 297 // LUCI does not interpret test ids in any other way. 298 TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 299 // Identifies a test result in a given invocation and test id. 300 // Regex: ^[a-z0-9\-_.]{1,32}$ 301 ResultId string `protobuf:"bytes,3,opt,name=result_id,json=resultId,proto3" json:"result_id,omitempty"` 302 // Description of one specific way of running the test, 303 // e.g. a specific bucket, builder and a test suite. 304 Variant *Variant `protobuf:"bytes,4,opt,name=variant,proto3" json:"variant,omitempty"` 305 // Whether the result of test case execution is expected. 306 // In a typical Chromium CL, 99%+ of test results are expected. 307 // Users are typically interested only in the unexpected results. 308 // 309 // An unexpected result != test case failure. There are test cases that are 310 // expected to fail/skip/crash. The test harness compares the actual status 311 // with the expected one(s) and this field is the result of the comparison. 312 Expected bool `protobuf:"varint,5,opt,name=expected,proto3" json:"expected,omitempty"` 313 // Machine-readable status of the test case. 314 // MUST NOT be STATUS_UNSPECIFIED. 315 Status TestStatus `protobuf:"varint,6,opt,name=status,proto3,enum=luci.resultdb.v1.TestStatus" json:"status,omitempty"` 316 // Human-readable explanation of the result, in HTML. 317 // MUST be sanitized before rendering in the browser. 318 // 319 // The size of the summary must be equal to or smaller than 4096 bytes in 320 // UTF-8. 321 // 322 // Supports artifact embedding using custom tags: 323 // - <text-artifact> renders contents of an artifact as text. 324 // Usage: 325 // - To embed result level artifact: <text-artifact 326 // artifact-id="<artifact_id>"> 327 // - To embed invocation level artifact: <text-artifact 328 // artifact-id="<artifact_id>" inv-level> 329 SummaryHtml string `protobuf:"bytes,7,opt,name=summary_html,json=summaryHtml,proto3" json:"summary_html,omitempty"` 330 // The point in time when the test case started to execute. 331 StartTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 332 // Duration of the test case execution. 333 // MUST be equal to or greater than 0. 334 Duration *durationpb.Duration `protobuf:"bytes,9,opt,name=duration,proto3" json:"duration,omitempty"` 335 // Metadata for this test result. 336 // It might describe this particular execution or the test case. 337 // A key can be repeated. 338 Tags []*StringPair `protobuf:"bytes,10,rep,name=tags,proto3" json:"tags,omitempty"` 339 // Hash of the variant. 340 // hex(sha256(sorted(”.join('%s:%s\n' for k, v in variant.items())))). 341 // 342 // Output only. 343 VariantHash string `protobuf:"bytes,12,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 344 // Information about the test at the time of its execution. 345 TestMetadata *TestMetadata `protobuf:"bytes,13,opt,name=test_metadata,json=testMetadata,proto3" json:"test_metadata,omitempty"` 346 // Information about the test failure. Only present if the test failed. 347 FailureReason *FailureReason `protobuf:"bytes,14,opt,name=failure_reason,json=failureReason,proto3" json:"failure_reason,omitempty"` 348 // Arbitrary JSON object that contains structured, domain-specific properties 349 // of the test result. 350 // 351 // The serialized size must be <= 4096 bytes. 352 Properties *structpb.Struct `protobuf:"bytes,15,opt,name=properties,proto3" json:"properties,omitempty"` 353 // Whether the test result has been masked so that it includes only metadata. 354 // The metadata fields for a TestResult are: 355 // * name 356 // * test_id 357 // * result_id 358 // * expected 359 // * status 360 // * start_time 361 // * duration 362 // * variant_hash 363 // * failure_reason.primary_error_message (truncated to 140 characters) 364 // * skip_reason 365 // 366 // Output only. 367 IsMasked bool `protobuf:"varint,16,opt,name=is_masked,json=isMasked,proto3" json:"is_masked,omitempty"` 368 // Reasoning behind a test skip, in machine-readable form. 369 // Used to assist downstream analyses, such as automatic bug-filing. 370 // MUST not be set unless status is SKIP. 371 SkipReason SkipReason `protobuf:"varint,18,opt,name=skip_reason,json=skipReason,proto3,enum=luci.resultdb.v1.SkipReason" json:"skip_reason,omitempty"` 372 } 373 374 func (x *TestResult) Reset() { 375 *x = TestResult{} 376 if protoimpl.UnsafeEnabled { 377 mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes[0] 378 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 379 ms.StoreMessageInfo(mi) 380 } 381 } 382 383 func (x *TestResult) String() string { 384 return protoimpl.X.MessageStringOf(x) 385 } 386 387 func (*TestResult) ProtoMessage() {} 388 389 func (x *TestResult) ProtoReflect() protoreflect.Message { 390 mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes[0] 391 if protoimpl.UnsafeEnabled && x != nil { 392 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 393 if ms.LoadMessageInfo() == nil { 394 ms.StoreMessageInfo(mi) 395 } 396 return ms 397 } 398 return mi.MessageOf(x) 399 } 400 401 // Deprecated: Use TestResult.ProtoReflect.Descriptor instead. 402 func (*TestResult) Descriptor() ([]byte, []int) { 403 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescGZIP(), []int{0} 404 } 405 406 func (x *TestResult) GetName() string { 407 if x != nil { 408 return x.Name 409 } 410 return "" 411 } 412 413 func (x *TestResult) GetTestId() string { 414 if x != nil { 415 return x.TestId 416 } 417 return "" 418 } 419 420 func (x *TestResult) GetResultId() string { 421 if x != nil { 422 return x.ResultId 423 } 424 return "" 425 } 426 427 func (x *TestResult) GetVariant() *Variant { 428 if x != nil { 429 return x.Variant 430 } 431 return nil 432 } 433 434 func (x *TestResult) GetExpected() bool { 435 if x != nil { 436 return x.Expected 437 } 438 return false 439 } 440 441 func (x *TestResult) GetStatus() TestStatus { 442 if x != nil { 443 return x.Status 444 } 445 return TestStatus_STATUS_UNSPECIFIED 446 } 447 448 func (x *TestResult) GetSummaryHtml() string { 449 if x != nil { 450 return x.SummaryHtml 451 } 452 return "" 453 } 454 455 func (x *TestResult) GetStartTime() *timestamppb.Timestamp { 456 if x != nil { 457 return x.StartTime 458 } 459 return nil 460 } 461 462 func (x *TestResult) GetDuration() *durationpb.Duration { 463 if x != nil { 464 return x.Duration 465 } 466 return nil 467 } 468 469 func (x *TestResult) GetTags() []*StringPair { 470 if x != nil { 471 return x.Tags 472 } 473 return nil 474 } 475 476 func (x *TestResult) GetVariantHash() string { 477 if x != nil { 478 return x.VariantHash 479 } 480 return "" 481 } 482 483 func (x *TestResult) GetTestMetadata() *TestMetadata { 484 if x != nil { 485 return x.TestMetadata 486 } 487 return nil 488 } 489 490 func (x *TestResult) GetFailureReason() *FailureReason { 491 if x != nil { 492 return x.FailureReason 493 } 494 return nil 495 } 496 497 func (x *TestResult) GetProperties() *structpb.Struct { 498 if x != nil { 499 return x.Properties 500 } 501 return nil 502 } 503 504 func (x *TestResult) GetIsMasked() bool { 505 if x != nil { 506 return x.IsMasked 507 } 508 return false 509 } 510 511 func (x *TestResult) GetSkipReason() SkipReason { 512 if x != nil { 513 return x.SkipReason 514 } 515 return SkipReason_SKIP_REASON_UNSPECIFIED 516 } 517 518 // Indicates the test subject (e.g. a CL) is absolved from blame 519 // for an unexpected result of a test variant. 520 // For example, the test variant fails both with and without CL, so it is not 521 // CL's fault. 522 type TestExoneration struct { 523 state protoimpl.MessageState 524 sizeCache protoimpl.SizeCache 525 unknownFields protoimpl.UnknownFields 526 527 // Can be used to refer to this test exoneration, e.g. in 528 // ResultDB.GetTestExoneration RPC. 529 // Format: 530 // invocations/{INVOCATION_ID}/tests/{URL_ESCAPED_TEST_ID}/exonerations/{EXONERATION_ID}. 531 // URL_ESCAPED_TEST_ID is test_variant.test_id escaped with 532 // https://golang.org/pkg/net/url/#PathEscape See also https://aip.dev/122. 533 // 534 // Output only. 535 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 536 // Test identifier, see TestResult.test_id. 537 TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 538 // Description of the variant of the test, see Variant type. 539 // Unlike TestResult.extra_variant_pairs, this one must be a full definition 540 // of the variant, i.e. it is not combined with Invocation.base_test_variant. 541 Variant *Variant `protobuf:"bytes,3,opt,name=variant,proto3" json:"variant,omitempty"` 542 // Identifies an exoneration in a given invocation and test id. 543 // It is server-generated. 544 ExonerationId string `protobuf:"bytes,4,opt,name=exoneration_id,json=exonerationId,proto3" json:"exoneration_id,omitempty"` 545 // Reasoning behind the exoneration, in HTML. 546 // MUST be sanitized before rendering in the browser. 547 ExplanationHtml string `protobuf:"bytes,5,opt,name=explanation_html,json=explanationHtml,proto3" json:"explanation_html,omitempty"` 548 // Hash of the variant. 549 // hex(sha256(sorted(”.join('%s:%s\n' for k, v in variant.items())))). 550 VariantHash string `protobuf:"bytes,6,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 551 // Reasoning behind the exoneration, in machine-readable form. 552 // Used to assist downstream analyses, such as automatic bug-filing. 553 // This allow detection of e.g. critical tests failing in presubmit, 554 // even if they are being exonerated because they fail on other CLs. 555 Reason ExonerationReason `protobuf:"varint,7,opt,name=reason,proto3,enum=luci.resultdb.v1.ExonerationReason" json:"reason,omitempty"` 556 // Whether the test exoneration has been masked so that it includes only 557 // metadata. The metadata fields for a TestExoneration are: 558 // * name 559 // * test_id 560 // * exoneration_id 561 // * variant_hash 562 // * explanation_html 563 // * reason 564 // 565 // Output only. 566 IsMasked bool `protobuf:"varint,8,opt,name=is_masked,json=isMasked,proto3" json:"is_masked,omitempty"` 567 } 568 569 func (x *TestExoneration) Reset() { 570 *x = TestExoneration{} 571 if protoimpl.UnsafeEnabled { 572 mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes[1] 573 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 574 ms.StoreMessageInfo(mi) 575 } 576 } 577 578 func (x *TestExoneration) String() string { 579 return protoimpl.X.MessageStringOf(x) 580 } 581 582 func (*TestExoneration) ProtoMessage() {} 583 584 func (x *TestExoneration) ProtoReflect() protoreflect.Message { 585 mi := &file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes[1] 586 if protoimpl.UnsafeEnabled && x != nil { 587 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 588 if ms.LoadMessageInfo() == nil { 589 ms.StoreMessageInfo(mi) 590 } 591 return ms 592 } 593 return mi.MessageOf(x) 594 } 595 596 // Deprecated: Use TestExoneration.ProtoReflect.Descriptor instead. 597 func (*TestExoneration) Descriptor() ([]byte, []int) { 598 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescGZIP(), []int{1} 599 } 600 601 func (x *TestExoneration) GetName() string { 602 if x != nil { 603 return x.Name 604 } 605 return "" 606 } 607 608 func (x *TestExoneration) GetTestId() string { 609 if x != nil { 610 return x.TestId 611 } 612 return "" 613 } 614 615 func (x *TestExoneration) GetVariant() *Variant { 616 if x != nil { 617 return x.Variant 618 } 619 return nil 620 } 621 622 func (x *TestExoneration) GetExonerationId() string { 623 if x != nil { 624 return x.ExonerationId 625 } 626 return "" 627 } 628 629 func (x *TestExoneration) GetExplanationHtml() string { 630 if x != nil { 631 return x.ExplanationHtml 632 } 633 return "" 634 } 635 636 func (x *TestExoneration) GetVariantHash() string { 637 if x != nil { 638 return x.VariantHash 639 } 640 return "" 641 } 642 643 func (x *TestExoneration) GetReason() ExonerationReason { 644 if x != nil { 645 return x.Reason 646 } 647 return ExonerationReason_EXONERATION_REASON_UNSPECIFIED 648 } 649 650 func (x *TestExoneration) GetIsMasked() bool { 651 if x != nil { 652 return x.IsMasked 653 } 654 return false 655 } 656 657 var File_go_chromium_org_luci_resultdb_proto_v1_test_result_proto protoreflect.FileDescriptor 658 659 var file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDesc = []byte{ 660 0x0a, 0x38, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 661 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 662 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 663 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63, 0x69, 664 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 665 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 666 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 667 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 668 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 669 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 670 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 671 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 672 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 673 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 674 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 675 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 676 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 677 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 678 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 679 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3b, 0x67, 680 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 681 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 682 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 683 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb4, 0x06, 0x0a, 0x0a, 0x54, 684 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 685 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0x52, 686 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 687 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x06, 0x74, 0x65, 0x73, 688 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x64, 689 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x05, 0xe0, 0x41, 0x02, 0x52, 0x08, 690 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 691 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x69, 692 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x72, 693 0x69, 0x61, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 694 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 695 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x65, 0x78, 0x70, 0x65, 0x63, 696 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 697 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 698 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 699 0x73, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 700 0x0a, 0x0c, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x68, 0x74, 0x6d, 0x6c, 0x18, 0x07, 701 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x73, 0x75, 0x6d, 0x6d, 0x61, 702 0x72, 0x79, 0x48, 0x74, 0x6d, 0x6c, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 703 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 704 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 705 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x73, 0x74, 0x61, 706 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 707 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 708 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 709 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 710 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 711 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 712 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x69, 0x72, 0x42, 0x03, 713 0xe0, 0x41, 0x05, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x0c, 0x76, 0x61, 0x72, 714 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 715 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 716 0x48, 0x61, 0x73, 0x68, 0x12, 0x43, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74, 717 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x75, 718 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 719 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x74, 0x65, 0x73, 720 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x0e, 0x66, 0x61, 0x69, 721 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 722 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 723 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 724 0x6f, 0x6e, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 725 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 726 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 727 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 728 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 729 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 730 0x41, 0x03, 0x52, 0x08, 0x69, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0b, 731 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 732 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 733 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 734 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x0b, 0x10, 735 0x0c, 0x22, 0xe6, 0x02, 0x0a, 0x0f, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 736 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 737 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 738 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 739 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x76, 0x61, 740 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 741 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x56, 742 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 743 0x2d, 0x0a, 0x0e, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 744 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0x52, 745 0x0d, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 746 0x0a, 0x10, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x74, 747 0x6d, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x65, 748 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x74, 0x6d, 0x6c, 0x12, 0x26, 749 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 750 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 751 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x40, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 752 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 753 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 754 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x05, 755 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6d, 756 0x61, 0x73, 0x6b, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 757 0x52, 0x08, 0x69, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x2a, 0x58, 0x0a, 0x0a, 0x54, 0x65, 758 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 759 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 760 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, 0x53, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 761 0x49, 0x4c, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x52, 0x41, 0x53, 0x48, 0x10, 0x03, 0x12, 762 0x09, 0x0a, 0x05, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4b, 763 0x49, 0x50, 0x10, 0x05, 0x2a, 0x53, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x70, 0x52, 0x65, 0x61, 0x73, 764 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 765 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 766 0x28, 0x0a, 0x24, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x4c, 0x59, 767 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x46, 0x4c, 768 0x41, 0x4b, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x01, 0x2a, 0x8f, 0x01, 0x0a, 0x11, 0x45, 0x78, 769 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 770 0x22, 0x0a, 0x1e, 0x45, 0x58, 0x4f, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 771 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 772 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x43, 0x43, 0x55, 0x52, 0x53, 0x5f, 0x4f, 0x4e, 773 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4f, 774 0x43, 0x43, 0x55, 0x52, 0x53, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x43, 775 0x4c, 0x53, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x52, 0x49, 0x54, 776 0x49, 0x43, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x4e, 0x45, 0x58, 0x50, 0x45, 777 0x43, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x10, 0x04, 0x42, 0x31, 0x5a, 0x2f, 0x67, 778 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 779 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 780 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x70, 0x62, 0x62, 0x06, 781 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 782 } 783 784 var ( 785 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescOnce sync.Once 786 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescData = file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDesc 787 ) 788 789 func file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescGZIP() []byte { 790 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescOnce.Do(func() { 791 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescData) 792 }) 793 return file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDescData 794 } 795 796 var file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 797 var file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes = make([]protoimpl.MessageInfo, 2) 798 var file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_goTypes = []interface{}{ 799 (TestStatus)(0), // 0: luci.resultdb.v1.TestStatus 800 (SkipReason)(0), // 1: luci.resultdb.v1.SkipReason 801 (ExonerationReason)(0), // 2: luci.resultdb.v1.ExonerationReason 802 (*TestResult)(nil), // 3: luci.resultdb.v1.TestResult 803 (*TestExoneration)(nil), // 4: luci.resultdb.v1.TestExoneration 804 (*Variant)(nil), // 5: luci.resultdb.v1.Variant 805 (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp 806 (*durationpb.Duration)(nil), // 7: google.protobuf.Duration 807 (*StringPair)(nil), // 8: luci.resultdb.v1.StringPair 808 (*TestMetadata)(nil), // 9: luci.resultdb.v1.TestMetadata 809 (*FailureReason)(nil), // 10: luci.resultdb.v1.FailureReason 810 (*structpb.Struct)(nil), // 11: google.protobuf.Struct 811 } 812 var file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_depIdxs = []int32{ 813 5, // 0: luci.resultdb.v1.TestResult.variant:type_name -> luci.resultdb.v1.Variant 814 0, // 1: luci.resultdb.v1.TestResult.status:type_name -> luci.resultdb.v1.TestStatus 815 6, // 2: luci.resultdb.v1.TestResult.start_time:type_name -> google.protobuf.Timestamp 816 7, // 3: luci.resultdb.v1.TestResult.duration:type_name -> google.protobuf.Duration 817 8, // 4: luci.resultdb.v1.TestResult.tags:type_name -> luci.resultdb.v1.StringPair 818 9, // 5: luci.resultdb.v1.TestResult.test_metadata:type_name -> luci.resultdb.v1.TestMetadata 819 10, // 6: luci.resultdb.v1.TestResult.failure_reason:type_name -> luci.resultdb.v1.FailureReason 820 11, // 7: luci.resultdb.v1.TestResult.properties:type_name -> google.protobuf.Struct 821 1, // 8: luci.resultdb.v1.TestResult.skip_reason:type_name -> luci.resultdb.v1.SkipReason 822 5, // 9: luci.resultdb.v1.TestExoneration.variant:type_name -> luci.resultdb.v1.Variant 823 2, // 10: luci.resultdb.v1.TestExoneration.reason:type_name -> luci.resultdb.v1.ExonerationReason 824 11, // [11:11] is the sub-list for method output_type 825 11, // [11:11] is the sub-list for method input_type 826 11, // [11:11] is the sub-list for extension type_name 827 11, // [11:11] is the sub-list for extension extendee 828 0, // [0:11] is the sub-list for field type_name 829 } 830 831 func init() { file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_init() } 832 func file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_init() { 833 if File_go_chromium_org_luci_resultdb_proto_v1_test_result_proto != nil { 834 return 835 } 836 file_go_chromium_org_luci_resultdb_proto_v1_common_proto_init() 837 file_go_chromium_org_luci_resultdb_proto_v1_test_metadata_proto_init() 838 file_go_chromium_org_luci_resultdb_proto_v1_failure_reason_proto_init() 839 if !protoimpl.UnsafeEnabled { 840 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 841 switch v := v.(*TestResult); i { 842 case 0: 843 return &v.state 844 case 1: 845 return &v.sizeCache 846 case 2: 847 return &v.unknownFields 848 default: 849 return nil 850 } 851 } 852 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 853 switch v := v.(*TestExoneration); i { 854 case 0: 855 return &v.state 856 case 1: 857 return &v.sizeCache 858 case 2: 859 return &v.unknownFields 860 default: 861 return nil 862 } 863 } 864 } 865 type x struct{} 866 out := protoimpl.TypeBuilder{ 867 File: protoimpl.DescBuilder{ 868 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 869 RawDescriptor: file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDesc, 870 NumEnums: 3, 871 NumMessages: 2, 872 NumExtensions: 0, 873 NumServices: 0, 874 }, 875 GoTypes: file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_goTypes, 876 DependencyIndexes: file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_depIdxs, 877 EnumInfos: file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_enumTypes, 878 MessageInfos: file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_msgTypes, 879 }.Build() 880 File_go_chromium_org_luci_resultdb_proto_v1_test_result_proto = out.File 881 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_rawDesc = nil 882 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_goTypes = nil 883 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_depIdxs = nil 884 }