blob: 2be953859b8161e5ecc7a6c2ca8aa8d30a4921ad [file] [log] [blame]
// Copyright (C) 2018 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.
// [START declaration]
syntax = "proto3";
package com_android_cts_releaseparser;
// [END declaration]
// [START java_declaration]
option java_package = "com.android.cts.releaseparser";
option java_outer_classname = "ReleaseProto";
// [END java_declaration]
// [START messages]
message Option {
string name = 1;
string key = 2;
string value =3;
}
message TestModuleConfig {
string module_name = 1;
string component = 2;
string description = 3;
repeated Option options = 4;
message TargetPreparer {
string test_class = 1;
repeated Option options = 2;
}
repeated TargetPreparer target_preparers = 5;
repeated string test_file_names = 6;
message TestClass {
string test_class = 1;
string package = 2;
repeated Option options = 3;
}
repeated TestClass test_classes = 7;
repeated string test_jars = 8;
}
// An entry in a release
message Entry {
// Name
string name = 1;
enum EntryType {
FOLDER = 0;
FILE = 1;
CONFIG = 2;
JAR = 3;
APK = 4;
EXE = 5;
SO = 6;
}
// Type
EntryType type = 2;
// Size
int64 size = 3;
// Content ID
string content_id = 4;
// Parent folder
string parent_folder = 5;
// Relative path
string relative_path = 6;
// TestModule.config message
TestModuleConfig test_module_config = 7;
}
message ReleaseContent {
// Name
string name = 1;
// Version
string version = 2;
// Build Number
string build_number = 3;
// Content ID
string content_id = 4;
string fullname = 5;
string target_arch = 6;
string test_suite_tradefed = 7;
// File Entries
map<string, Entry> entries = 8;
repeated string known_failures = 9;
}
message Annotation {
int32 visibility = 1;
string type = 2;
message Element {
string name = 1;
string value = 2;
}
repeated Element elements = 3;
}
enum TestClassType {
UNKNOWN = 0;
JUNIT3 = 1;
JUNIT4 = 2;
PARAMETERIZED = 3;
JAVAHOST = 4;
}
message TestSuite {
string name = 1;
// Version
string version = 2;
// Build Number
string build_number = 3;
// Content ID
string content_id = 4;
enum TestType {
UNKNOWN = 0;
ANDROIDJUNIT = 1;
JAVAHOST = 2;
GTEST = 3;
LIBCORE = 4;
DALVIK = 5;
DEQP = 6;
}
message Module {
string name = 1;
string config_file = 2;
TestType test_type = 3;
string test_class = 4;
message Package {
string name = 1;
string package_file = 2;
string content_id = 3;
string op_codes = 4;
message Class {
string name = 1;
string type = 2;
string super_class = 3;
string interface = 4;
TestClassType test_class_type = 5;
repeated Annotation annotations = 6;
message Method {
string defining_class = 1;
string name = 2;
string parameters = 3;
string return_type = 4;
int32 access_flags = 5;
string known_failure_filter = 6;
repeated Annotation annotations = 7;
}
repeated Method methods = 7;
message Field {
string defining_class = 1;
string name = 2;
string type = 3;
int32 access_flags = 4;
string initial_value = 5;
repeated Annotation annotations = 6;
}
repeated Field fields = 8;
}
repeated Class classes = 5;
}
repeated Package packages = 5;
}
repeated Module modules = 5;
}
// [END messages]