blob: 58e7147bbfd08c3eebe1f31ff2f2b917c87c47a3 [file] [log] [blame]
Julien Desprez093c3f62018-05-21 16:23:37 -07001/*
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
Julien Desprezed8bd9b2018-07-13 08:50:20 -070022option java_package = "com.android.tradefed.result.proto";
Julien Desprez093c3f62018-05-21 16:23:37 -070023option 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;
Julien Desprezb18ff872018-08-16 10:34:28 -070064
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;
Julien Desprez093c3f62018-05-21 16:23:37 -070068}
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;
Julien Desprez69dcc6c2020-01-17 10:43:47 -080097
98 // A more detailed failure status description.
99 FailureStatus failure_status = 3;
100}
101
102// A Fail TestStatus can be associated with a more granular failure status that helps understanding
103// the context.
104enum FailureStatus {
105 // The test in progress was the reason for the failure.
106 TEST_FAILURE = 0;
107 // A timeout condition on the operation in progress occurred.
108 TIMED_OUT = 1;
109 // The test in progress was cancelled.
110 CANCELLED = 2;
111 // A failure attributed to something not functioning properly.
112 INFRA_FAILURE = 10;
113 // System under test crashed and caused the test to fail.
114 SYSTEM_UNDER_TEST_CRASHED = 20;
Julien Desprez093c3f62018-05-21 16:23:37 -0700115}