| // Copyright 2020 The LUCI Authors. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| syntax = "proto3"; |
| |
| package luci.resultdb.bq; |
| |
| import "google/protobuf/duration.proto"; |
| import "google/protobuf/timestamp.proto"; |
| import "go.chromium.org/luci/resultdb/proto/bq/common.proto"; |
| import "go.chromium.org/luci/resultdb/proto/v1/common.proto"; |
| import "go.chromium.org/luci/resultdb/proto/v1/test_metadata.proto"; |
| import "go.chromium.org/luci/resultdb/proto/v1/failure_reason.proto"; |
| |
| option go_package = "go.chromium.org/luci/resultdb/proto/bq;resultpb"; |
| |
| // TestResultRow represents a row in a BigQuery table for result of a functional |
| // test case. |
| // Next id: 19. |
| message TestResultRow { |
| // Exported contains info of the exported invocation. |
| // |
| // Note: it's possible that this invocation is not the result's |
| // immediate parent invocation, but the including invocation. |
| // For example if the BigQuery table is for all test results of Chromium CI |
| // builds, then the exported invocation is for a CI build, which includes |
| // multiple invocations for swarming tasks within that build. |
| InvocationRecord exported = 1; |
| |
| // Parent contains info of the result's immediate parent invocation. |
| InvocationRecord parent = 2; |
| |
| // Name of the test result. |
| // Format: |
| // "invocations/{PARENT.ID}/tests/{URL_ESCAPED_TEST_ID}/results/{RESULT_ID}". |
| // where URL_ESCAPED_TEST_ID is test_id escaped with |
| // https://golang.org/pkg/net/url/#PathEscape See also https://aip.dev/122. |
| string name = 17; |
| |
| // Is a unique identifier of the test in a LUCI project. |
| // Refer to TestResult.test_id for details. |
| string test_id = 3; |
| |
| // Identifies a test result in a given invocation and test id. |
| string result_id = 4; |
| |
| // Describes one specific way of running the test, |
| // e.g. a specific bucket, builder and a test suite. |
| repeated luci.resultdb.v1.StringPair variant = 5; |
| |
| // A hex-encoded sha256 of concatenated "<key>:<value>\n" variant pairs. |
| string variant_hash = 6; |
| |
| // Expected is a flag indicating whether the result of test case execution is |
| // expected. Refer to TestResult.Expected for details. |
| bool expected = 7; |
| |
| // Status of the test result. |
| // See TestStatus for possible values. |
| string status = 8; |
| |
| // A human-readable explanation of the result, in HTML. |
| string summary_html = 9; |
| |
| // The point in time when the test case started to execute. |
| google.protobuf.Timestamp start_time = 10; |
| |
| // Duration of the test case execution in seconds. |
| google.protobuf.Duration duration = 11; |
| |
| // Tags contains metadata for this test result. |
| // It might describe this particular execution or the test case. |
| repeated luci.resultdb.v1.StringPair tags = 12; |
| |
| // If the failures of the test variant are exonerated. |
| // Note: the exoneration is at the test variant level, not result level. |
| bool exonerated = 13; |
| |
| // Partition_time is used to partition the table. |
| // It is the time when exported invocation was created in Spanner. |
| // Note: it is NOT the time when the row is inserted into BigQuery table. |
| // https://cloud.google.com/bigquery/docs/creating-column-partitions#limitations |
| // mentions "The partitioning column must be a top-level field." |
| // So we keep this column here instead of adding the CreateTime to Invocation. |
| google.protobuf.Timestamp partition_time = 14; |
| |
| // Metadata of the test case, |
| // e.g. the original test name and test location. |
| luci.resultdb.v1.TestMetadata test_metadata = 16; |
| |
| // Information about failed tests. |
| // e.g. the assertion failure message. |
| luci.resultdb.v1.FailureReason failure_reason = 18; |
| } |