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 15 syntax = "proto2"; 16 17 package android.vts; 18 option java_package = "com.android.vts.proto"; 19 option java_outer_classname = "VtsFuzzTaskMessageClass"; 20 21 import "test/vts/proto/ComponentSpecificationMessage.proto"; 22 import "test/vts/proto/VtsReportMessage.proto"; 23 24 25 // To specify status of a FuzzTaskUnitMessage 26 enum 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 39 enum 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 55 message 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 74 message 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 99 message 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 127 message 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