You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
356 lines
10 KiB
356 lines
10 KiB
// Copyright 2016 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.
|
|
|
|
syntax = "proto2";
|
|
|
|
package android.vts;
|
|
option java_package = "com.android.vts.proto";
|
|
option java_outer_classname = "VtsReportMessage";
|
|
option java_multiple_files = false;
|
|
|
|
|
|
// To specify test case execution result.
|
|
enum TestCaseResult {
|
|
UNKNOWN_RESULT = 0;
|
|
TEST_CASE_RESULT_PASS = 1;
|
|
TEST_CASE_RESULT_FAIL = 2;
|
|
TEST_CASE_RESULT_SKIP = 3;
|
|
TEST_CASE_RESULT_EXCEPTION = 4;
|
|
TEST_CASE_RESULT_TIMEOUT = 5;
|
|
}
|
|
|
|
|
|
// To specify the VTS test type.
|
|
enum VtsTestType {
|
|
UNKNOWN_VTS_TESTTYPE = 0;
|
|
VTS_HOST_DRIVEN_STRUCTURAL = 1;
|
|
VTS_HOST_DRIVEN_FUZZING = 2;
|
|
VTS_TARGET_SIDE_GTEST = 3;
|
|
VTS_TARGET_SIDE_FUZZING = 4;
|
|
}
|
|
|
|
enum VtsProfilingRegressionMode {
|
|
UNKNOWN_REGRESSION_MODE = 0;
|
|
// disable analysis
|
|
VTS_REGRESSION_MODE_DISABLED = 1;
|
|
// interpret increases in values as regression
|
|
VTS_REGRESSION_MODE_INCREASING = 2;
|
|
// interpret decreases in values as regression
|
|
VTS_REGRESSION_MODE_DECREASING= 3;
|
|
}
|
|
|
|
enum VtsProfilingType {
|
|
UNKNOWN_VTS_PROFILING_TYPE = 0;
|
|
// for one sample which measures the time between two profiling points.
|
|
VTS_PROFILING_TYPE_TIMESTAMP = 1;
|
|
// for multiple single-type samples with labels.
|
|
VTS_PROFILING_TYPE_LABELED_VECTOR = 2;
|
|
// for multiple single-type samples without labels.
|
|
VTS_PROFILING_TYPE_UNLABELED_VECTOR = 3;
|
|
}
|
|
|
|
// To specify a call flow event.
|
|
message AndroidDeviceInfoMessage {
|
|
// product type (e.g., bullhead).
|
|
optional bytes product_type = 1;
|
|
|
|
// product type variant (e.g., still bullhead or another name).
|
|
optional bytes product_variant = 2;
|
|
|
|
// build type (e.g., userdebug).
|
|
optional bytes build_flavor = 11;
|
|
|
|
// Android Build ID.
|
|
optional bytes build_id = 12;
|
|
|
|
// branch name (e.g., main or nyc-dev).
|
|
optional bytes branch = 21;
|
|
|
|
// build alias implies the branch name.
|
|
optional bytes build_alias = 22;
|
|
|
|
// API level
|
|
optional bytes api_level = 31;
|
|
|
|
// ABI name that is current in use for the test
|
|
optional bytes abi_name = 51;
|
|
|
|
// ABI bitness that is current in use for the test. Example: '32', '64',
|
|
optional bytes abi_bitness = 52;
|
|
|
|
// Device USB serial number
|
|
optional bytes serial = 101;
|
|
}
|
|
|
|
|
|
// To specify build info.
|
|
message AndroidBuildInfo {
|
|
// build ID.
|
|
optional bytes id = 1;
|
|
|
|
// device name (e.g., bullhead).
|
|
optional bytes name = 11;
|
|
|
|
// build type (e.g., userdebug)
|
|
optional bytes build_type = 12;
|
|
|
|
// branch name (e.g., main or nyc-dev)
|
|
optional bytes branch = 13;
|
|
|
|
// indicates the latest commit information of each branch (e.g., xml format).
|
|
optional bytes build_summary = 21;
|
|
}
|
|
|
|
|
|
// To specify the information about a host node.
|
|
message VtsHostInfo {
|
|
// the host name (i.e., full domain name).
|
|
optional bytes hostname = 1;
|
|
}
|
|
|
|
|
|
// To specify a test case execution report.
|
|
message TestCaseReportMessage {
|
|
// the test case name.
|
|
optional bytes name = 1;
|
|
|
|
// the test result.
|
|
optional TestCaseResult test_result = 11;
|
|
|
|
// execution start and end time stamp.
|
|
optional int64 start_timestamp = 21;
|
|
optional int64 end_timestamp = 22;
|
|
|
|
// coverage report per file
|
|
repeated CoverageReportMessage coverage = 31;
|
|
|
|
// profiling reports
|
|
repeated ProfilingReportMessage profiling = 41;
|
|
|
|
// systrace report message per file
|
|
repeated SystraceReportMessage systrace = 42 [deprecated=true];
|
|
|
|
// log for each test case. May contain multiple logs such as logcat, host log,
|
|
// etc.
|
|
repeated LogMessage log = 101;
|
|
}
|
|
|
|
|
|
// To specify a profiling report.
|
|
message ProfilingReportMessage {
|
|
// the instrumentation point name.
|
|
optional bytes name = 1;
|
|
optional VtsProfilingType type = 2;
|
|
optional VtsProfilingRegressionMode regression_mode = 3;
|
|
|
|
// profiling start and end time stamp (for performance).
|
|
optional int64 start_timestamp = 11;
|
|
optional int64 end_timestamp = 12;
|
|
|
|
repeated bytes label = 21;
|
|
repeated int64 value = 22;
|
|
|
|
// x-axis and y-axis title labels when displaying the data as a graph
|
|
optional bytes x_axis_label = 31;
|
|
optional bytes y_axis_label = 32;
|
|
|
|
// a list of strings where each string has the form of 'key=value'.
|
|
// used to tell certain properties of the data (e.g., passthrough vs.
|
|
// binderized).
|
|
repeated bytes options = 41;
|
|
}
|
|
|
|
// To specify a systrace report.
|
|
message SystraceReportMessage {
|
|
// the target process name used by systrace
|
|
optional bytes process_name = 1;
|
|
|
|
// the produced html report
|
|
repeated bytes html = 11;
|
|
|
|
// URLs of the produced html reports
|
|
repeated bytes url = 21;
|
|
}
|
|
|
|
// To specify a coverage report.
|
|
message CoverageReportMessage {
|
|
// the path to the source file from the project root.
|
|
optional bytes file_path = 11;
|
|
|
|
// the name of the project where the file can be found
|
|
optional bytes project_name = 12;
|
|
|
|
// the commit ID identifying the code revision
|
|
optional bytes revision = 13;
|
|
|
|
// i-th element gives the number of times i-th line is executed.
|
|
repeated int64 line_coverage_vector = 23;
|
|
|
|
// the number of source code lines that are instrumented for code coverage
|
|
// measurement.
|
|
optional int32 total_line_count = 101;
|
|
|
|
// the number of source code lines that are executed.
|
|
optional int32 covered_line_count = 102;
|
|
|
|
// TODO(ryanjcampbell@) delete deprecated field
|
|
// the directory path of a source file.
|
|
optional bytes dir_path = 1 [deprecated=true];
|
|
|
|
// TODO(ryanjcampbell@) delete deprecated field
|
|
// the name of the source file.
|
|
optional bytes file_name = 2 [deprecated=true];
|
|
|
|
// TODO(ryanjcampbell@) delete deprecated field
|
|
// produced html report.
|
|
optional bytes html = 3 [deprecated=true];
|
|
}
|
|
|
|
// Information for a HAL interface.
|
|
message HalInterfaceMessage {
|
|
// HAL package name. e.g. android.hardware.foo.
|
|
optional bytes hal_package_name = 1;
|
|
// HAL (major) version. e.g. 1.
|
|
optional int32 hal_version_major = 2;
|
|
// HAL (minor) version. e.g. 0.
|
|
optional int32 hal_version_minor = 3;
|
|
// HAL interface name. e.g. IFoo.
|
|
optional bytes hal_interface_name = 4;
|
|
// HAL release level (e.g. "current", "27", "28")
|
|
optional bytes hal_release_level = 5;
|
|
}
|
|
|
|
// To specify a API coverage report. Currently only for HAL API coverage.
|
|
message ApiCoverageReportMessage {
|
|
// Hal interface info.
|
|
optional HalInterfaceMessage hal_interface = 1;
|
|
|
|
// APIs provided by the HAL with given package, version and interface name.
|
|
repeated bytes hal_api = 11;
|
|
|
|
// APIs covered by the test.
|
|
repeated bytes covered_hal_api = 12;
|
|
}
|
|
|
|
// To specify log report. This can be used either for per-test-module
|
|
// log message or per-test-case log message.
|
|
message LogMessage {
|
|
// URL of a produced log file (e.g., stdout, stderr).
|
|
optional bytes url = 1;
|
|
|
|
// Name of a log file.
|
|
optional bytes name = 2;
|
|
|
|
// Content of log. Caution: do not put too much log in protobuf message,
|
|
// as BigTable for example recommends < 10 MB for each record cell.
|
|
optional bytes content = 3;
|
|
}
|
|
|
|
// To specify a resource object (reachable via a URL or contained in the
|
|
// message). This can be used to store a log file or an XML (or HTML) report
|
|
// file kept in a Google Cloud Storage (GCS) bucket or partner's network file
|
|
// system, or hosted by a HTTP server.
|
|
message UrlResourceMessage {
|
|
// URL of a resource file.
|
|
optional bytes url = 1;
|
|
|
|
// Name of a resource file representing its type and does not have to be
|
|
// the same as the exact file name.
|
|
optional bytes name = 2;
|
|
|
|
// Raw content of a resource file. Used if the file is small.
|
|
optional bytes content = 3;
|
|
}
|
|
|
|
// To specify a test execution report.
|
|
message TestReportMessage {
|
|
// The test suite name.
|
|
optional bytes test_suite = 1 [deprecated=true];
|
|
|
|
// The test name.
|
|
optional bytes test = 2;
|
|
|
|
// The test type
|
|
optional VtsTestType test_type = 3;
|
|
|
|
// Target device info
|
|
repeated AndroidDeviceInfoMessage device_info = 4;
|
|
|
|
// Build info
|
|
optional AndroidBuildInfo build_info = 5;
|
|
|
|
// Email addresses of subscribers to the test results
|
|
repeated bytes subscriber_email = 6;
|
|
|
|
// Info about the host computer
|
|
optional VtsHostInfo host_info = 7;
|
|
|
|
// Test case reports
|
|
repeated TestCaseReportMessage test_case = 11;
|
|
|
|
// Profiling reports
|
|
repeated ProfilingReportMessage profiling = 21;
|
|
|
|
// Systrace report per file
|
|
repeated SystraceReportMessage systrace = 22 [deprecated=true];
|
|
|
|
// Execution start and end time stamp.
|
|
optional int64 start_timestamp = 101;
|
|
optional int64 end_timestamp = 102;
|
|
|
|
// Coverage report per file
|
|
repeated CoverageReportMessage coverage = 103;
|
|
|
|
// API coverage report for each HAL interface.
|
|
repeated ApiCoverageReportMessage api_coverage = 104;
|
|
|
|
// Log for a test module. May contain multiple logs such as logcat, host log,
|
|
// etc.
|
|
repeated LogMessage log = 1001;
|
|
|
|
// URL links for the test run.
|
|
repeated UrlResourceMessage link_resource = 1011;
|
|
}
|
|
|
|
// To specify a test execution report.
|
|
message TestPlanReportMessage {
|
|
// Keys used to find all TestReportMessage messages of test modules in
|
|
// this plan.
|
|
repeated string test_module_name = 11;
|
|
repeated int64 test_module_start_timestamp = 12;
|
|
|
|
// The test plan name.
|
|
optional string test_plan_name = 21;
|
|
|
|
// Report resource flies.
|
|
repeated UrlResourceMessage partner_report = 31;
|
|
|
|
// Available HAL APIs for coverage measurement.
|
|
// Only used for profiling test plan.
|
|
repeated ApiCoverageReportMessage hal_api_report = 41;
|
|
|
|
// Detailed information about the execution environment (e.g., branch,
|
|
// build ID, and device) can be found in the associated TestReportMessage(s)
|
|
// which share the same test_plan_execution_id.
|
|
}
|
|
|
|
// Proto wrapper for posting data to the VTS Dashboard
|
|
message DashboardPostMessage {
|
|
// oauth2.0 access token
|
|
optional string access_token = 1;
|
|
|
|
repeated TestReportMessage test_report = 2;
|
|
repeated TestPlanReportMessage test_plan_report = 3;
|
|
}
|