Home | History | Annotate | Download | only in proto
      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