1/* 2 * Copyright (C) 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16syntax = "proto3"; 17 18import "google/protobuf/any.proto"; 19import "google/protobuf/timestamp.proto"; 20import "tools/tradefederation/core/proto/metric_measurement.proto"; 21 22option java_package = "com.android.tradefed.result.proto"; 23option java_outer_classname = "TestRecordProto"; 24 25package android_test_record; 26 27// A record containing the status, logs, and other information associated with a 28// particular test execution. 29message TestRecord { 30 // The UUID of this TestRecord. 31 string test_record_id = 1; 32 33 // The UUID of this TestRecord's parent. Unset if this is a top-level record. 34 string parent_test_record_id = 2; 35 36 // References to any finer-grained TestRecords that were generated as part of 37 // this test. 38 repeated ChildReference children = 3; 39 40 // The number of children this TestRecord was expected to have. Unset if not 41 // known in advance. 42 int64 num_expected_children = 4; 43 44 // The result status (Pass, Fail, etc) of this test unit. 45 TestStatus status = 5; 46 47 // Extra debugging information. 48 DebugInfo debug_info = 6; 49 50 // The time at which this test started executing. 51 google.protobuf.Timestamp start_time = 7; 52 53 // The time at which this test finished executing. 54 google.protobuf.Timestamp end_time = 8; 55 56 // Any artifact files associated with this test. 57 map<string, google.protobuf.Any> artifacts = 9; 58 59 // Any metrics or measurements associated with this test. 60 map<string, tradefed.metric.Metric> metrics = 10; 61 62 // Metadata describing the test that was run. 63 google.protobuf.Any description = 11; 64 65 // The attempt number of a target if the target ran several times. First 66 // attempt is 0 (Default value). 67 int64 attempt_id = 12; 68} 69 70// A reference to a finer-grained TestRecord. 71message ChildReference { 72 oneof reference { 73 // The UUID of the TestRecord. 74 string test_record_id = 1; 75 76 // An inlined TestRecord. 77 TestRecord inline_test_record = 2; 78 } 79} 80 81// The overall pass / fail status for a particular TestRecord. 82enum TestStatus { 83 UNKNOWN = 0; 84 PASS = 1; 85 FAIL = 2; 86 IGNORED = 3; 87 ASSUMPTION_FAILURE = 4; 88} 89 90// Associated debugging information to accompany a TestStatus. 91message DebugInfo { 92 // An error message. 93 string error_message = 1; 94 95 // A stacktrace. 96 string trace = 2; 97}