Home | History | Annotate | Download | only in proto
      1 // Copyright (C) 2018 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 // [START declaration]
     16 syntax = "proto3";
     17 package com_android_cts_apicoverage;
     18 // [END declaration]
     19 
     20 // [START java_declaration]
     21 option java_package = "com.android.cts.apicoverage";
     22 option java_outer_classname = "TestSuiteProto";
     23 // [END java_declaration]
     24 
     25 // [START messages]
     26 message Option {
     27     string name = 1;
     28     string key = 2;
     29     string value =3;
     30 }
     31 
     32 message ConfigMetadata {
     33     string module_name = 1;
     34     string component = 2;
     35     repeated Option options = 3;
     36 
     37     message TargetPreparer {
     38         string test_class = 1;
     39         repeated Option options = 2;
     40     }
     41     repeated TargetPreparer target_preparers = 4;
     42 
     43     message TestClass {
     44         string test_class = 1;
     45         string package = 2;
     46         repeated Option options = 3;
     47     }
     48     repeated TestClass test_classes = 5;
     49 }
     50 
     51 message Annotation {
     52     int32 visibility = 1;
     53     string type = 2;
     54 
     55     message Element {
     56         string name = 1;
     57         string value = 2;
     58     }
     59     repeated Element elements = 3;
     60 }
     61 
     62 message TestSuite {
     63     string name = 1;
     64 
     65     message Package {
     66         string name = 1;
     67 
     68         enum Type {
     69             ANDROIDJUNIT = 0;
     70             JAVAHOST = 1;
     71             GTEST = 2;
     72             DEQP = 3;
     73             LIBCORE = 4;
     74             DALVIK = 5;
     75         }
     76         Type type = 2;
     77 
     78         message Class {
     79             string name = 1;
     80             string type = 2;
     81             string super_class = 3;
     82             string interface = 4;
     83 
     84             enum ClassType {
     85                 UNKNOWN = 0;
     86                 JUNIT3 = 1;
     87                 JUNIT4 = 2;
     88                 PARAMETERIZED = 3;
     89                 JAVAHOST = 4;
     90             }
     91 
     92             ClassType class_type = 5;
     93             repeated Annotation annotations = 6;
     94 
     95             message Method {
     96                 string defining_class = 1;
     97                 string name = 2;
     98                 string parameters = 3;
     99                 string return_type = 4;
    100                 int32 access_flags = 5;
    101                 repeated Annotation annotations = 6;
    102             }
    103             repeated Method methods = 7;
    104 
    105             message Field {
    106                 string defining_class = 1;
    107                 string name = 2;
    108                 string type = 3;
    109                 int32 access_flags = 4;
    110                 string initial_value = 5;
    111                 repeated Annotation annotations = 6;
    112             }
    113             repeated Field fields = 8;
    114             string apk = 9;
    115         }
    116         repeated Class classes = 3;
    117         string op_codes = 4;
    118     }
    119     repeated Package packages = 2;
    120 }
    121 
    122 // target File Metadata for e.g. config, apk, jar, exe, so
    123 message FileMetadata {
    124     string description = 1;
    125     ConfigMetadata config_metadata = 2;
    126 }
    127 
    128 // An entry in a Test Suire Release messages: cts, etc.
    129 message Entry {
    130     // Entry ID
    131     string id = 1;
    132     // Name
    133     string name = 2;
    134 
    135     enum EntryType {
    136         FOLDER = 0;
    137         FILE = 1;
    138         CONFIG = 2;
    139         JAR = 3;
    140         APK = 4;
    141         EXE = 5;
    142         SO = 6;
    143     }
    144 
    145     // Type
    146     EntryType type = 3;
    147     // Size
    148     int64 size = 4;
    149     // Content ID
    150     string content_id = 5;
    151     // Parent entry ID
    152     string parent_id = 6;
    153     // Relative path
    154     string relative_path = 7;
    155 
    156     FileMetadata file_metadata = 8;
    157 }
    158 
    159 // Test Suite Release: cts, etc.
    160 message TestSuiteContent {
    161     // Entry ID
    162     string id = 1;
    163     // Name
    164     string name = 2;
    165     // Version
    166     string version = 3;
    167     // Build ID
    168     string bid = 4;
    169     // Content ID
    170     string content_id = 5;
    171     // File Entries
    172     repeated Entry file_entries = 6;
    173     repeated string known_failures = 7;
    174 }
    175 // [END messages]
    176