1// Copyright 2017 The Android Open Source Project
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
15syntax = "proto2";
16
17package android.vts;
18option java_package = "com.android.vts.proto";
19option java_outer_classname = "VtsFuzzTaskMessageClass";
20
21import "test/vts/proto/ComponentSpecificationMessage.proto";
22import "test/vts/proto/VtsReportMessage.proto";
23
24
25// To specify status of a FuzzTaskUnitMessage
26enum Status {
27  // task not processed yet
28  READY = 0;
29
30  // task in process
31  LOCKED = 1;
32
33  // task fully processed
34  PROCESSED = 2;
35}
36
37
38// To specify result of fuzz task
39enum Result {
40  // task not processed yet
41  NOT_PROCESSED = 0;
42
43  // duplicate crash
44  CRASH_DUPLICATE = 1;
45
46  // new crash
47  CRASH_NEW = 2;
48
49  // fuzz test passed with no crash
50  PASS = 3;
51}
52
53
54// To specify details of the test suite target
55message TestSuiteSpecificationMessage {
56  // target product (e.g., VTS)
57  optional bytes test_suite = 1;
58
59  // branch name (e.g., master, oc-dev)
60  optional bytes branch = 11;
61
62  // target product (e.g., aosp_arm64)
63  optional bytes target_product = 12;
64
65  // build variant (e.g., userdebug)
66  optional bytes build_variant = 13;
67
68  // build ID
69  optional bytes build_id = 21;
70}
71
72
73// To specify details of a corpus
74message CorpusSpecificationMessage {
75  // Component class (e.g., HIDL HAL or Conventional HAL)
76  optional ComponentClass component_class = 1;
77
78  // Corpus file names
79  repeated bytes corpus_file_name = 2;
80
81  // HAL package name (e.g., android.hardware.audio)
82  optional bytes hal_package_name = 11;
83
84  // HAL transport type (e.g., hwbinder, passthrough)
85  optional bytes hal_transport_type = 12;
86
87  // HAL major version (e.g., 2 of 2.0)
88  optional int32 hal_major_version = 13;
89
90  // HAL minor version (e.g., 0 of 2.0)
91  optional int32 hal_minor_version = 14;
92
93  // HAL interface name (e.g., IDevicesFactory)
94  optional bytes hal_interface_name = 15;
95}
96
97
98// To specify details of a fuzz task per target
99message FuzzTaskUnitMessage {
100  // status of fuzz task
101  optional Status status = 1;
102
103  // result of fuzz task
104  optional Result result_type = 2;
105
106  // log files (host or device)
107  repeated UrlResourceMessage log = 3;
108
109  // tracks when the fuzz task unit was created
110  optional int64 creation_timestamp = 11;
111
112  // tracks when most recent status change occurred
113  optional int64 status_change_timestamp = 12;
114
115  // specification of fuzz task device target
116  optional AndroidDeviceInfoMessage device_info = 21;
117
118  // specification of fuzz task device build info
119  optional AndroidBuildInfo build_info = 22;
120
121  // specification of test suite (e.g., VTS) build target
122  optional TestSuiteSpecificationMessage test_suite_target = 23;
123}
124
125
126// To specify a fuzz task
127message VtsFuzzTaskMessage {
128  // numeric Task ID
129  optional int32 task_id = 1;
130
131  // specification of fuzz task per target
132  repeated FuzzTaskUnitMessage task_unit = 2;
133
134  // VTS test module name
135  optional bytes test_module_name = 11;
136
137  // specification of corpus
138  optional CorpusSpecificationMessage corpus = 21;
139}
140