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// Contains proto definition for storing CTS reports. 16 17syntax = "proto2"; 18 19package com.android.cts.apicoverage; 20option java_package = "com.android.cts.apicoverage"; 21option java_outer_classname = "CtsReportProto"; 22 23// from common_report.proto 24// Information about the build on the phone. All the fields 25// correspond to values from android.os.Build. 26// Next Id: 20 27message BuildInfo { 28 optional string board = 1; 29 optional string brand = 2; 30 optional string device = 3; 31 optional string display = 4; 32 optional string fingerprint = 5; 33 optional string id = 6; 34 optional string model = 7; 35 optional string product = 8; 36 message Version { 37 optional string release = 1; 38 optional string sdk = 2; 39 } 40 optional Version version = 9; 41 optional string manufacturer = 10; 42 // This field is deprecated in android.os.Build. Use supported_abi instead. 43 optional string abi = 11 [deprecated = true]; 44 // This field is deprecated in android.os.Build. Use supported_abi instead. 45 optional string abi2 = 12 [deprecated = true]; 46 repeated string supported_abi = 13; 47 repeated string supported_32_bit_abi = 14; 48 repeated string supported_64_bit_abi = 15; 49 // Build.BASE_OS The base OS build the product is based on. See b/23003940 50 optional string base_os = 16; 51 // Build.SECURITY_PATCH The user-visible security patch level. See b/23003940 52 optional string security_patch = 17; 53 // A build fingerprint of the reference device. See go/apfe-reference-build 54 optional string reference_build_fingerprint = 18; 55 // RO Property set for the build. 56 map<string, string> ro_property_map = 19; 57} 58 59// Summary count of the test results. 60message Summary { 61 optional int32 failed = 1; 62 optional int32 not_executed = 2; 63 optional int32 pass = 3; 64 optional int32 timeout = 4; 65 optional int32 warning = 5; 66} 67 68// Information about the device's memory configuration 69message MemoryInfo { 70 // ActivityManager.isLowRamDevice 71 optional bool is_low_ram_device = 1; 72 73 // ActivityManager.getMemoryClass() 74 optional int32 memory_class = 2; 75 76 // ActivityManager.getLargeMemoryClass() 77 optional int32 large_memory_class = 3; 78 79 // MemoryInfo.totalMem 80 optional int64 total_memory = 4; 81} 82 83message CpuInfo { 84 // Runtime.availableProcessors 85 optional int32 available_processors = 1; 86} 87// from common_report.proto ends 88 89// Logical screen density 90// The numbers are in dpi and should match android.util.DisplayMetrics.DENSITY_* 91enum LogicalDensity { 92 LDPI = 120; 93 DENSITY_140 = 140; 94 MDPI = 160; 95 DENSITY_180 = 180; 96 DENSITY_200 = 200; 97 TVDPI = 213; 98 DENSITY_220 = 220; 99 HDPI = 240; 100 DENSITY_260 = 260; 101 DENSITY_280 = 280; 102 DENSITY_300 = 300; 103 XHDPI = 320; 104 DENSITY_340 = 340; 105 DENSITY_360 = 360; 106 // Intermediate density for screens that sit somewhere between DENSITY_XHIGH (320 dpi) and 107 // DENSITY_XXHIGH (480 dpi). 108 DENSITY_400 = 400; 109 DENSITY_420 = 420; 110 DENSITY_440 = 440; 111 XXHDPI = 480; 112 // Intermediate density for screens that sit somewhere between DENSITY_XXHIGH (480 dpi) and 113 // DENSITY_XXXHIGH (640 dpi). 114 DENSITY_560 = 560; 115 DENSITY_600 = 600; 116 XXXHDPI = 640; 117} 118 119// Logical screen size 120// The numbers should match 121// android.content.res.Configuration.SCREENLAYOUT_SIZE_* 122enum LogicalSize { 123 UNDEFINED = 0; 124 SMALL = 1; 125 NORMAL = 2; 126 LARGE = 3; 127 XLARGE = 4; 128} 129 130// Result type of PTS tests defined in: 131// cts/suite/pts/lib/commonutil/src/com/android/pts/util/ResultType.java 132enum ResultType { 133 LOWER_BETTER = 0; 134 HIGHER_BETTER = 1; 135 NEUTRAL = 2; 136 WARNING = 3; 137} 138 139// Result unit of PTS values defined in: 140// cts/suite/pts/lib/commonutil/src/com/android/pts/util/ResultUnit.java 141enum ResultUnit { 142 NONE = 0; 143 MS = 1; 144 FPS = 2; 145 OPS = 3; 146 KBPS = 4; 147 MBPS = 5; 148 BYTE = 6; 149 COUNT = 7; 150 SCORE = 8; 151} 152 153// A CtsReport message encapsulates the output of a Compatibility Test Suite 154// (CTS) run. 155message CtsReport { 156 157 // Test plan that was run, generally "CTS". 158 optional string test_plan = 1; 159 160 // Version of the CTS tool. 161 optional string version = 2; 162 163 optional int64 start_time = 3; 164 optional int64 end_time = 4; 165 166 // Fields describing the particular device under test. 167 // Next Id: 32 168 message DeviceInfo { 169 170 optional string screen_resolution = 1; 171 optional LogicalDensity logical_screen_density = 17; 172 optional LogicalSize logical_screen_size = 18; 173 174 optional string subscriber_id = 2 [deprecated = true]; 175 optional string type = 3 [deprecated = true]; 176 optional string device_id = 4 [deprecated = true]; 177 optional string imei = 5 [deprecated = true]; 178 optional string imsi = 6 [deprecated = true]; 179 optional string keypad = 7; 180 repeated string locale = 8; 181 optional string navigation = 9; 182 optional string network = 10 [deprecated = true]; 183 optional string touch = 11; 184 optional float x_dpi = 12; 185 optional float y_dpi = 13; 186 optional string opengl_es_version = 19; 187 188 // Use BuildInfo.supported_abi instead 189 optional string build_abi = 20 [deprecated = true]; 190 // Use BuildInfo.supported_abi instead 191 optional string build_abi2 = 21 [deprecated = true]; 192 193 optional BuildInfo build_info = 14; 194 optional MemoryInfo memory_info = 29; 195 optional CpuInfo cpu_info = 30; 196 197 // Filesystem partitions. 198 optional string partitions = 22; 199 200 repeated string system_library = 23; 201 // Deprecated. These values are found in the extension list 202 repeated string opengl_texture_format = 24 [deprecated = true]; 203 // GLES20.GL_EXTENSIONS, GL10.GL_EXTENSIONS or GLES30.GL_EXTENSIONS 204 repeated string opengl_extension = 25; 205 // gl.glGetString(GL10.GL_VENDOR) or GLES20.glGetString(GLES20.GL_VENDOR) 206 // or GLES30.glGetString(GLES30.GL_VENDOR) 207 optional string opengl_vendor = 26; 208 // gl.glGetString(GL10.GL_RENDERER) 209 // or GLES20.glGetString(GLES20.GL_RENDERER) 210 // or GLES30.glGetString(GLES30.GL_RENDERER) 211 optional string opengl_renderer = 27; 212 213 // Hardware features that may be available on the device. 214 // This includes features such as camera, gps and compass. 215 message Feature { 216 optional string name = 1; 217 optional string type = 2; 218 optional bool available = 3; 219 optional int32 version = 4; 220 } 221 repeated Feature feature = 15; 222 223 // Running processes. 224 message Process { 225 optional string name = 1; 226 optional int32 uid = 2; 227 } 228 repeated Process process = 16; 229 230 // Configuration.smallestScreenWidthDp 231 optional int32 smallest_screen_width_dp = 28; 232 233 // The value reported from UserManager.getMaxSupportedUsers 234 optional int32 max_supported_users = 31; 235 } 236 optional DeviceInfo device_info = 5; 237 238 // Information about the host running the test suite. 239 message HostInfo { 240 241 // Hostname of the machine running the tests. 242 optional string hostname = 1; 243 244 // Operating system running on the host. 245 message Os { 246 optional string arch = 1; 247 optional string name = 2; 248 optional string version = 3; 249 } 250 optional Os os = 2; 251 252 // Information about the JRE used to run the tests. 253 message JavaEnv { 254 optional string name = 1; 255 optional string version = 2; 256 } 257 optional JavaEnv java_env = 3; 258 259 // CTS version and parameters during runtime. 260 message Cts { 261 optional string version = 1; 262 263 message Parameter { 264 optional string name = 1; 265 optional int32 value = 2; 266 } 267 repeated Parameter parameter = 2; 268 } 269 optional Cts cts = 4; 270 } 271 optional HostInfo host_info = 6; 272 273 optional Summary summary = 7; 274 275 // Group of test suites within a specific java package. 276 message TestPackage { 277 278 // Java package name. 279 optional string deprecated_app_package_name = 1 [deprecated = true]; 280 281 // Unique name describing the test package within the java package. 282 optional string name = 2; 283 optional string deprecated_digest = 3 [deprecated = true]; 284 optional bool deprecated_signature_check = 4 [deprecated = true]; 285 286 // Group of test cases. 287 message TestSuite { 288 289 // Unique name describing the test suite within the test package. 290 optional string name = 1; 291 292 // Group of individual tests. 293 message TestCase { 294 295 // Unique name describing the test case within the test suite. 296 optional string name = 1; 297 optional string priority = 2; 298 299 // Smallest test unit, which ideally tests only one feature or function. 300 message Test { 301 302 // Unique name describing the test within the test case. 303 optional string name = 1; 304 305 // Result of the test run. 306 optional string result = 2; 307 308 // Bug id for known issues. 309 optional string deprecated_known_failure = 3 [deprecated = true]; 310 311 // Time this test was started. 312 optional int64 deprecated_start_time = 4 [deprecated = true]; 313 314 // Time this test completed. 315 optional int64 deprecated_end_time = 5 [deprecated = true]; 316 317 // Captures an exception thrown during the test. 318 message FailedScene { 319 optional string exception_message = 1; 320 optional string stack_trace = 2; 321 } 322 repeated FailedScene failed_scene = 6; 323 324 // Summary of the PTS test. 325 message Summary { 326 optional string message = 1; 327 optional ResultType score_type = 2; 328 optional ResultUnit unit = 3; 329 optional double value = 4; 330 } 331 optional Summary summary = 7; 332 333 // Details of the PTS test. 334 message Details { 335 336 // Set of values captured when running the PTS test. 337 message ValueArray { 338 optional string source = 1; 339 optional string message = 2; 340 optional ResultType score_type = 3; 341 optional ResultUnit unit = 4; 342 repeated double value = 5; 343 } 344 repeated ValueArray value_array = 1; 345 } 346 optional Details details = 8; 347 } 348 repeated Test test = 3; 349 } 350 repeated TestCase test_case = 2; 351 } 352 repeated TestSuite test_suite = 5; 353 354 // abi specifies the ABI the test ran under like "armeabi". 355 optional string abi = 6; 356 } 357 repeated TestPackage test_package = 8; 358} 359