blob: 72e8f0835b0ed97382cace7fe2a04d4d00effd1b [file] [log] [blame]
// 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";
// 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., master 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., master 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;
// host log for each test case.
optional HostLogMessage host_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 int32 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];
}
// To specify host log report. This can be used either for per-test-module
// log message or per-test-case log message.
message HostLogMessage {
// URLs of the produced host log
optional bytes url = 1;
// Stdout of host log. Caution: do not put too much log in protobuf message,
// as bigtable recommends < 10 mb for each record cell
optional bytes stdout = 11;
// Stderr of host log. Caution: do not put too much log in protobuf message,
// as bigtable recommends < 10 mb for each record cell
optional bytes stderr = 12;
// Return code for a test case. This field should only be used for
// per-test-case log message
optional int32 ret = 13;
}
// To specify a test execution report.
message TestReportMessage {
// the test suite name..
optional bytes test_suite = 1;
// 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;
// execution start and end time stamp.
optional int64 start_timestamp = 101;
optional int64 end_timestamp = 102;
// coverage report per file
repeated CoverageReportMessage coverage = 103;
// host log for a test module. May contains host log for each test case.
optional HostLogMessage host_log = 1001;
}