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