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