1// Copyright 2021 The ChromiumOS Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5syntax = "proto3"; 6 7package chromiumos.test.artifact; 8 9import "chromiumos/storage_path.proto"; 10import "chromiumos/test/api/provision_state.proto"; 11import "chromiumos/test/api/test_case_metadata.proto"; 12import "chromiumos/test/api/test_case_result.proto"; 13import "chromiumos/test/api/test_harness.proto"; 14import "chromiumos/test/lab/api/dut.proto"; 15import "google/protobuf/duration.proto"; 16import "google/protobuf/timestamp.proto"; 17 18option go_package = "go.chromium.org/chromiumos/config/go/test/artifact"; 19 20// Captures rich information for test results. 21// NEXT TAG: 4 22message TestResult { 23 // Captures the test result artifact version. 24 uint32 version = 1; 25 26 // The test invocation which contains invocation-level information. 27 TestInvocation test_invocation = 2; 28 29 // List of test runs which contains specific test-level information. 30 repeated TestRun test_runs = 3; 31} 32 33// Captures invocation-level information for test results. 34// NEXT TAG: 14 35message TestInvocation { 36 // The test environment specific information. 37 TestEnvironment test_environment = 1; 38 39 // The topology of the connected devices under test. The DUT topology 40 // represents the hardware specs of devices and includes a full list of 41 // available DUTs of a given schedule-able unit (e.g. swarming bot) from 42 // inventory server. 43 // Multi-dut Sarming bot example: 44 // https://chromeos-swarming.appspot.com/bot?id=crossk-chromeos15-row3-metro1-unit4 45 // 46 // For multi-dut testing, it's possible that only a subset of DUTs are used 47 // to run tests. In addition, only those DUT that are used for testing will 48 // have provision info and build info. Refer to ExecutionInfo fields for 49 // detailed test execution info of DUTs. 50 chromiumos.test.lab.api.DutTopology dut_topology = 2; 51 52 // The execution information for the test run that consists of software 53 // information (e.g. build) and hardware information (e.g. DUT). 54 // Generally, this will contain a single Dut for an functional test that 55 // doesn't depend on other devices, but can include a collection of devices 56 // used in multi-dut testing (e.g. ChromeOS to ChromeOS, ChromeOS to Android, 57 // etc...). For multi-dut testing, there are only one primary DUT and one or 58 // more secondary DUTs. 59 // 60 // Test execution related information for the primary DUT. 61 ExecutionInfo primary_execution_info = 3; 62 63 // Test execution related information for the secondary DUTs. 64 repeated ExecutionInfo secondary_executions_info = 4; 65 66 // The metadata required to schedule the test(s) within the same test 67 // invocation. 68 SchedulingMetadata scheduling_metadata = 5; 69 70 // For added flexibility, additional key value pairs could be added and 71 // associated with the given test invocation as needed. 72 map<string, string> tags = 6; 73 74 // Flag to indicate whether tests are run in CFT. 75 bool is_cft_run = 7; 76 77 // Flag to indicate whether tests are run via test_runner V2. 78 bool is_trv2_run = 10; 79 80 // Flag to distinguish AL test runs. 81 bool is_al_run = 11; 82 83 // Flag to indicate whether tests are run via 3d. 84 bool is_3d_run = 12; 85 86 // The metadata associated with project tracker within the same test 87 // invocation. 88 ProjectTrackerMetadata project_tracker_metadata = 8; 89 90 // Partner info associated with the test run. 91 PartnerInfo partner_info = 9; 92 93 // 3D equivalence classes (EqC) info associated with the test run. 94 EqcInfo eqc_info = 13; 95} 96 97// Captures the test environment that produced the test invocation, 98// e.g. internal labs via buildbucket, partner labs via Satlab for Partner, 99// local LED testing via swarming. 100// NEXT TAG: 3 101message TestEnvironment { 102 // Unique identifier for the test environment that produced results in this 103 // invocation. 104 // NEXT TAG: 3 105 message Id { 106 // The unique id of the test environment that produced results in this 107 // invocation. 108 // Example: buildbucket id: "8799081636806167121". 109 string id = 1; 110 111 // The full name of the test environment that produced results in this 112 // invocation. See also https://aip.dev/122#full-resource-names 113 // e.g. 114 // - Swarming task: 115 // "//chromeos-swarming.appspot.com//tasks/5e91083c29fc0810" 116 // - Buildbucket build: 117 // "//cr-buildbucket.appspot.com/builds/8799081636806167121". 118 string name = 2; 119 } 120 121 // The unique id of the test environment that produced results in this 122 // invocation. 123 Id id = 1; 124 125 // All the ancestor ids of this test environment. The order represents the 126 // relationship of the ancestors and the first one is the root. 127 repeated Id ancestor_ids = 2; 128} 129 130// Captures the 3D equivalence classes (EqC) information. 131// NEXT TAG: 5 132message EqcInfo { 133 // Unique hash for an EqC from the 3D source. 134 // Example: "A310930190d11" 135 string eqc_hash = 1; 136 137 // Optional. Human readable name for an EqC. Set by the user in the 3D 138 // source. 139 // Example: "IntelRaptorLakeKernelNext" 140 string eqc_name = 2; 141 142 // EqC category expression name which is set on the test. 143 // Example: "{\"name\": \"Audio_SoC_Codec_Amp\"}" 144 map<string, string> eqc_category_expression = 3; 145 146 // A map of dimension names and values for an EqC. The dimension names 147 // should be aligned with the EqC category expression. 148 // Example: {"wifiChip":"bar", "soc":"foo"} 149 map<string, string> eqc_dimensions = 4; 150} 151 152// Captures information regarding a test run. 153// NEXT TAG: 8 154message TestRun { 155 // Test case information for the test result. 156 TestCaseInfo test_case_info = 1; 157 158 // List of paths to the result artifacts that are used to derive test result 159 // information. 160 repeated chromiumos.StoragePath logs_info = 2; 161 162 // List of additional custom results. 163 repeated CustomResult custom_results = 3; 164 165 // The timing information of the test run. 166 TimingInfo time_info = 4; 167 168 // Deprecated. Use the `test_harness`` field from 169 // `chromiumos.test.api.TestCaseResult test_case_result` below instead. 170 // Test harness that the test belongs to. 171 chromiumos.test.api.TestHarness test_harness = 5 [deprecated = true]; 172 173 // The metadata required to execute the test run. 174 ExecutionMetadata execution_metadata = 6; 175 176 // For added flexibility, additional key value pairs could be added and 177 // associated with the given test run as needed. 178 map<string, string> tags = 7; 179} 180 181// Captures test case information associated with a test run. 182// NEXT TAG: 13 183message TestCaseInfo { 184 // Deprecated. Use the `test_case_metadata` field from 185 // `chromiumos.test.api.TestCaseResult test_case_result` below instead. 186 // Metadata related to test case and execution context. 187 chromiumos.test.api.TestCaseMetadata test_case_metadata = 1 [deprecated = true]; 188 189 // Result of a single execution of a given test case, including test harness 190 // and test case metadata. 191 chromiumos.test.api.TestCaseResult test_case_result = 2; 192 193 // The display name of the test result. 194 // Example: "hatch-cq/R102-14632.0.0/wificell-cq/tast.wificell-cq" 195 string display_name = 3; 196 197 // Test suite name. 198 // Example: "crosbolt_perf_perbuild" 199 string suite = 4; 200 201 // The branch name. 202 // Example: main 203 string branch = 5; 204 205 // The main builder name. 206 // Example: main-release 207 string main_builder_name = 6; 208 209 // The requester who triggered the test run. 210 string requester = 7; 211 212 // List of email addresses to contact in case of test failures. 213 repeated string contacts = 8; 214 215 // The name of the testplan, if one is associated 216 // Example: ltl_testplan 217 string test_plan_id = 9; 218 219 // The channel of the build. 220 // Example: "BETA", "DEV", "CANARY", "STABLE" 221 string channel = 10; 222 223 // AVL component qualification info. 224 AvlInfo avl_info = 11; 225 226 // GSC devboard info 227 GscInfo gsc_info = 12; 228} 229 230// Captures ChromeOS build information associated with a test run. 231// NEXT TAG: 12 232message BuildInfo { 233 // The name associated with a given build, e.g. image name. 234 // Format: "<source>/R<milestone>-<chrome_os_version>[.<additional_suffix>]" 235 // Example: "drallion-cq/R106-15048.0.0-69541-8805781873765277729" 236 string name = 1; 237 238 // The ChromeOS Milestone associated with the build. 239 // Example: 100, 101 240 uint64 milestone = 2; 241 242 // The ChromeOS Version associated with the build. 243 // Example: "15048.0.0" 244 string chrome_os_version = 3; 245 246 // The source where the build is created. 247 // Example: "drallion-cq", "kevin-release" 248 string source = 4; 249 250 // The snapshot version associated with the build. 251 // Example: "59b0b491b0aac1aedbac9334f9ddb4d1c448260a" 252 string snapshot_version = 5; 253 254 // The full name of the build target which includes any variant if available. 255 // Example: "grunt-arc-r-vmrvc-android-pfq" 256 string build_target = 6; 257 258 // The variant associated with the given board. 259 // Example: "grunt-arc-r" 260 string board_variant = 7; 261 262 // The plain board name associated with the given build. 263 // Example: "grunt". 264 string board = 8; 265 266 // The build metadata associated with a test run. 267 BuildMetadata build_metadata = 9; 268 269 // The criticality is for the build tied to the board/model from GoldenEye 270 // whether it's tagged with informational (non-critical) or not. 271 // Note that the default is false if it's not set. 272 bool critical = 10; 273 274 // The type associated with the given board. 275 // Example: "HW", or "VM". 276 string board_type = 11; 277} 278 279// The complete build metadata of the test case. 280// NEXT TAG: 15 281message BuildMetadata { 282 // ARC++ metadata 283 message Arc { 284 // The ARC++ version associated with the build. 285 string version = 1; 286 287 // The particular ARC++ branch associated with the build. 288 string branch = 2; 289 } 290 291 Arc arc = 1; 292 293 // Chrome metadata 294 message Chrome { 295 string version = 1; 296 } 297 298 Chrome chrome = 2; 299 300 message ChromeOs { 301 string version = 1; 302 } 303 304 // Chrome OS metadata 305 ChromeOs chrome_os = 3; 306 307 // Firmware metadata 308 // NEXT TAG: 5 309 message Firmware { 310 // Read-only AP firmware version running on the DUT, 311 // e.g. "Google_Voema.13672.224.0". 312 string ro_version = 1; 313 314 // Read-write AP firmware version running on the DUT, 315 // e.g. "Google_Voema.13672.224.0". 316 string rw_version = 2; 317 318 // Read-only AP firmware version specified in the firmware provision 319 // request, e.g. "Google_Voxel.13672.415.0". 320 string ap_ro_version = 3; 321 322 // Read-write AP firmware version specified in the firmware provision 323 // request, e.g. "Google_Voxel.13672.415.0". 324 string ap_rw_version = 4; 325 } 326 327 Firmware firmware = 4; 328 329 // Kernel metadata 330 message Kernel { 331 // Kernel version, e.g. "5.4.151-16902-g93699f4e73de". 332 string version = 1; 333 } 334 335 Kernel kernel = 5; 336 337 // SKU metadata 338 message Sku { 339 string hwid_sku = 1; 340 // dlm_sku_id is identifier set in VPD at factory on new devices which 341 // correlates to an entry in DLM device SKUs table, should be an integer 342 // value in the string eg: "12345" 343 string dlm_sku_id = 2; 344 } 345 346 Sku sku = 6; 347 348 // The Chip set metadata 349 // NEXT TAG: 3 350 message Chipset { 351 // Wifi chip info, e.g. "marvell". 352 string wifi_chip = 1; 353 354 // Wifi router models within the testbed, e.g. "gale". 355 string wifi_router_models = 2; 356 } 357 358 Chipset chipset = 7; 359 360 // ChromeOS cellular metadata 361 message Cellular { 362 // Carrier info, e.g. "CARRIER_ESIM" 363 string carrier = 1; 364 } 365 366 Cellular cellular = 8; 367 368 // Lacros metadata 369 message Lacros { 370 // Ash Chrome browser version, e.g. "109.0.5391.0". 371 string ash_version = 1; 372 373 // Lacros browser version, e.g. "109.0.5391.0". 374 string lacros_version = 2; 375 } 376 377 Lacros lacros = 9; 378 379 // Deprecated. Use ChameleonInfo from below instead. 380 chromiumos.test.lab.api.Chameleon chameleon = 10 [deprecated = true]; 381 382 // Graphics info 383 // NEXT TAG: 15 384 message GfxInfo { 385 // GPU ID, e.g. "amd:15e7". 386 string gpu_id = 1; 387 388 // GPU family name, e.g. "cezanne". 389 string gpu_family = 2; 390 391 // OpenGL ES version, e.g. "3.2". 392 string gpu_open_gles_version = 3; 393 394 // GPU vendor name, e.g. "amd". 395 string gpu_vendor = 4; 396 397 // Vulkan version, e.g. "1.3.274". 398 string gpu_vulkan_version = 5; 399 400 // The following platform info is for the DUT in general. 401 // CPU vendor name, e.g. "amd". 402 string platform_cpu_vendor = 6; 403 404 // The disk size in GB, e.g. 32. 405 uint64 platform_disk_size = 7; 406 407 // The memory size in GB, e.g. 8. 408 uint64 platform_memory_size = 8; 409 410 // The following are the display config. 411 string display_panel_name = 9; 412 string display_present_hdr = 10; 413 string display_present_psr = 11; 414 string display_present_vrr = 12; 415 string display_refresh_rate = 13; 416 string display_resolution = 14; 417 } 418 419 GfxInfo gfx_info = 11; 420 421 // Modem info that defines modem labels in lab config of a DUT 422 chromiumos.test.lab.api.ModemInfo modem_info = 12; 423 424 // Chameleon metadata for for automated external display testing across USB-C, 425 // HDMI, and DisplayPort. 426 // See details: http://g3doc/company/teams/chromeos-audio/tests/chameleon 427 // This is a mirror of the proto stored in chrome repository under 428 // https://source.chromium.org/chromium/infra/infra/+/main:go/src/infra/unifiedfleet/api/v1/models/chromeos/lab/chameleon.proto 429 // Next Tag: 12 430 enum ChameleonType { 431 reserved 1, 6 to 8; 432 CHAMELEON_TYPE_INVALID = 0; 433 CHAMELEON_TYPE_DP = 2; 434 CHAMELEON_TYPE_DP_HDMI = 3 [deprecated = true]; 435 CHAMELEON_TYPE_VGA = 4 [deprecated = true]; 436 CHAMELEON_TYPE_HDMI = 5; 437 CHAMELEON_TYPE_V2 = 9; 438 CHAMELEON_TYPE_V3 = 10; 439 CHAMELEON_TYPE_RPI = 11; 440 } 441 442 // Next Tag: 5 443 enum ChameleonConnectionType { 444 CHAMELEON_CONNECTION_TYPE_INVALID = 0; 445 CHAMELEON_CONNECTION_TYPE_AUDIOJACK = 1; 446 CHAMELEON_CONNECTION_TYPE_USB = 2; 447 CHAMELEON_CONNECTION_TYPE_HDMI = 3; 448 CHAMELEON_CONNECTION_TYPE_DP = 4; 449 } 450 451 // Next Tag: 3 452 message ChameleonInfo { 453 repeated ChameleonType chameleon_type = 1; 454 repeated ChameleonConnectionType chameleon_connection_types = 2; 455 } 456 ChameleonInfo chameleon_info = 13; 457 458 // Servo info associated with the test invocation. 459 // NEXT TAG: 4 460 message ServoInfo { 461 // Servod version 462 // Example: "v1.0.2345-4b2de21e 2024-08-17 00:30:57" 463 string servod_version = 1; 464 465 // Servo firmware versions 466 // Example: "c2d2_v2.4.73-d771c18ba9,0.24.40/ti50_common_prepvt-15086.B:v0.0.355-15c69d7f, 467 // fizz-labstation-release/R115-15474.55.0,servo_v4_v2.4.58-c37246f9c" 468 string servo_versions = 2; 469 470 // Servo type 471 // Sourced from the servo_type field in the sysinfo/servo file 472 // Example: "servo_v4_with_c2d2_and_ccd_ti50" 473 string servo_type = 3; 474 } 475 476 // Servo info associated with test invocation. 477 ServoInfo servo_info = 14; 478} 479 480// Captures DUT related info. 481// NEXT TAG: 5 482message DutInfo { 483 // DUT associated with the test run. 484 chromiumos.test.lab.api.Dut dut = 1; 485 486 // Provision state associated with the DUT. 487 chromiumos.test.api.ProvisionState provision_state = 2; 488 489 // Additional DUT related information for more flexibility. For example, 490 // additional identifier that could be specific to a certain TLE. 491 // Example: "Moblab Install Id": "701c38ce144611ed86a50242c0a8640c" 492 map<string, string> tags = 3; 493 494 // True is applicable to CBX SKU DUTs, otherwise they are non-CBX. 495 bool cbx = 4; 496} 497 498// Captures Drone related info. 499// NEXT TAG: 4 500message DroneInfo { 501 // The UUID assigned to the drone. 502 // Example: "skylab-drone-deployment-prod-6dc79d4f9-czjlj" 503 string drone = 1; 504 505 // The image installed in the drone. 506 // Example: "gcr.io/chromeos-drone-images/drone:20221110T150226-chromeos-test" 507 string drone_image = 2; 508 509 // The drone server id. 510 // Example: "kube20-e" 511 string drone_server = 3; 512} 513 514// Captures the Swarming task related info. 515// NEXT TAG: 8 516message SwarmingInfo { 517 // The Swarming task id. 518 // Example: "59f0e13fe7af0710" 519 string task_id = 1; 520 521 // The parent's swarming task id. 522 // Example: "59ef5e9532bbd611" 523 string suite_task_id = 2; 524 525 // The swarming task name (swarming request name). 526 // Format: "bb-<buildbucket_id>-{project}/{bucket}/{builder}" 527 // Example: "bb-8818737803155059937-chromeos/general/Full" 528 string task_name = 3; 529 530 // Device pool, an optional dimension to Swarming, which is used only by 531 // ChromeOS. 532 // Example: "ChromeOSSkylab" 533 string pool = 4; 534 535 // A pool dimension for swarming task scheduling. 536 // Example: "DUT_POOL_QUOTA" 537 string label_pool = 5; 538 539 // An ID to identify the bot that is running the tests. 540 // Example: "cloudbots-prod-2-5c8s" 541 string bot_id = 6; 542 543 // The bot config file to run to decide where the bot is running tests at. 544 // Example: "skylab.py" 545 string bot_config = 7; 546} 547 548// Captures the Inventory related info. 549// NEXT TAG: 2 550message InventoryInfo { 551 // UFS zone config, 552 // Example: "ZONE_SFO36_OS" 553 string ufs_zone = 1; 554} 555 556// Identifies a buildbucket builder. 557// Canonical string representation: "{project}/{bucket}/{builder}". 558// See the BuilderID in the buildbucket build.proto: 559// https://chromium.googlesource.com/infra/luci/luci-go/+/master/buildbucket/proto/builder_common.proto 560// NEXT TAG: 4 561message BuilderID { 562 // Project ID, e.g. "chromeos". Unique within a LUCI deployment. 563 // Regex: ^[a-z0-9\-_]+$ 564 string project = 1; 565 566 // Bucket name, e.g. "try". Unique within the project. 567 // Regex: ^[a-z0-9\-_.]{1,100}$ 568 // Together with project, defines an ACL. 569 string bucket = 2; 570 571 // Builder name, e.g. "linux-rel". Unique within the bucket. 572 // Regex: ^[a-zA-Z0-9\-_.\(\) ]{1,128}$ 573 string builder = 3; 574} 575 576// BuildbucketInfo contains fields extracted from the buildbucket build.proto 577// https://chromium.googlesource.com/infra/luci/luci-go/+/master/buildbucket/proto/build.proto 578// NEXT TAG: 4 579message BuildbucketInfo { 580 // Identifier of the build, unique per LUCI deployment. 581 // IDs are monotonically decreasing. 582 int64 id = 1; 583 584 // Required. The builder this build belongs to. 585 // 586 // Tuple (builder.project, builder.bucket) defines build ACL 587 // which may change after build has ended. 588 BuilderID builder = 2; 589 590 // IDs of the build's ancestors. This includes all parents/grandparents/etc. 591 // This is ordered from top-to-bottom so `ancestor_ids[0]` is the root of 592 // the builds tree, and `ancestor_ids[-1]` is this build's immediate parent. 593 // This does not include any "siblings" at higher levels of the tree, just 594 // the direct chain of ancestors from root to this build. 595 repeated int64 ancestor_ids = 3; 596} 597 598// Captures Skylab related info. 599// NEXT TAG: 4 600message SkylabInfo { 601 // Drone info associated with the test run. 602 DroneInfo drone_info = 1; 603 604 // Swarming task associated with the test run. Mainly populated for tests 605 // running on swarming bot. 606 SwarmingInfo swarming_info = 2; 607 608 // Buildbucket build associated with the test run. Mainly populated for tests 609 // scheduled by buildbucket. 610 BuildbucketInfo buildbucket_info = 3; 611} 612 613// Captures Satlab related info. 614// NEXT TAG: 4 615message SatlabInfo { 616 // Swarming task associated with the test run. Mainly populated for tests 617 // running on swarming bot. 618 SwarmingInfo swarming_info = 1; 619 620 // Buildbucket build associated with the test run. Mainly populated for tests 621 // scheduled by buildbucket. 622 BuildbucketInfo buildbucket_info = 2; 623 624 // Drone info associated with the test run. 625 DroneInfo drone_info = 3; 626} 627 628// Captures Partner related info. 629// NEXT TAG: 2 630message PartnerInfo { 631 // Teshaus account id of the partner. 632 int64 account_id = 1; 633} 634 635// Captures test execution related information for the test run. 636// NEXT TAG: 6 637message ExecutionInfo { 638 // ChromeOS build associated with the test run. 639 BuildInfo build_info = 1; 640 641 // DUT associated with the test run. 642 DutInfo dut_info = 2; 643 644 // Execution architecture specific information. 645 oneof env_info { 646 SkylabInfo skylab_info = 3; 647 SatlabInfo satlab_info = 4; 648 } 649 650 // Inventory info associated with the test run. 651 InventoryInfo inventory_info = 5; 652} 653 654// Represents custom result, as a way for tests to produce arbitrary artifacts. 655// Custom results can be used by the pipeline to kick off post processing jobs 656// or to hand off results to downstream pipelines. 657// NEXT TAG: 3 658message CustomResult { 659 // Path to the custom result artifacts generated during execution. 660 chromiumos.StoragePath result_artifact_path = 1; 661 662 // Type of the custom result. 663 oneof type { 664 Cts cts = 2; 665 } 666 667 // CTS related custom results 668 message Cts { 669 // TODO: Add fields as needed. 670 } 671} 672 673// Captures the timing information. 674// NEXT TAG: 4 675message TimingInfo { 676 // The time when the execution was created and pending in queue. 677 google.protobuf.Timestamp queued_time = 1; 678 679 // The time when the execution started to execute. 680 google.protobuf.Timestamp started_time = 2; 681 682 // Duration of the execution. 683 google.protobuf.Duration duration = 3; 684} 685 686// Metadata associated with the scheduling of the test. The scheduling metadata 687// are mainly related to the hardware aspect. 688// NEXT TAG: 4 689message SchedulingMetadata { 690 // HardwareAttributes defines the hardware-bound characteristics of the 691 // devices to run tests on. 692 map<string, string> hardware_dependencies = 1; 693 694 // Captures scheduling arguments that affect how the tests in this request are 695 // prioritized relative to other requests, and how capacity for them is 696 // allocated, 697 // e.g. Scheduling field in 698 // "go.chromium.org/chromiumos/infra/proto/go/test_platform/request.proto". 699 // 700 // The following args are supported: 701 // - analytics_name: Name of the config, used for analytics, 702 // e.g. "Bluetooth_Sa_Perbuild". Source from the SchedulerConfig in: 703 // "go.chromium.org/chromiumos/infra/proto/go/testplans/suite_scheduler.proto" 704 // - ctp-fwd-task-name: Suite scheduler config name, 705 // e.g. "Bluetooth_Sa_Perbuild". 706 // - qs_account: Quota Scheduler account to use for DUT pool, 707 // e.g. "unmanaged_p2". Source from the PoolOptions in: 708 // "go.chromium.org/chromiumos/infra/proto/go/testplans/suite_scheduler.proto" 709 map<string, string> scheduling_args = 2; 710 711 // The timing information of the scheduling task, 712 // e.g. fast, slow, extendedtimeout, ordering etc. 713 TimingInfo time_info = 3; 714} 715 716// Metadata associated with project tracker. 717// NEXT TAG: 2 718message ProjectTrackerMetadata { 719 // Bug ID from test args that are set by users. 720 // Example: "12345" 721 string bug_id = 1; 722} 723 724// Metadata associated with the test execution. The execution metadata are 725// mainly related to the software respect. 726// NEXT TAG: 3 727message ExecutionMetadata { 728 // List of software dependencies needed to be installed onto the DUT for the 729 // particular Test Case, 730 // e.g. provisioning requirements, additional supplemental files to download. 731 // 732 // Aligned with the SoftwareDependency in 733 // "go.chromium.org/chromiumos/infra/proto/go/test_platform/request.proto". 734 map<string, string> software_dependencies = 1; 735 736 // Captures the command and arguments used to run the particular Test Case. 737 // This could be at the Test Invocation level which would be propagated to 738 // each of the Test Case that’s contained by the Test Invocation. This is 739 // useful for retrying or rerunning the test again if needed. 740 map<string, string> test_args = 2; 741} 742 743// AVL component qualification info associated with the test run. 744// NEXT TAG: 4 745message AvlInfo { 746 // The tested component model (same meaning as Part Number in DLM, but the 747 // exact string representation might be different). 748 // Example: "0x0000f5 MMC32G" 749 string avl_part_model = 1; 750 751 // The tested component firmware (same meaning as Part Firmware in DLM, but 752 // the exact string representation might be different). 753 // Example: "0xa200000000000000" 754 string avl_part_firmware = 2; 755 756 // AVL component type. 757 // Example: "storage" 758 string avl_component_type = 3; 759} 760 761// GSC devboard info associated with the test run. 762// See more details at go/gsc-devboard-rdb-tags 763// NEXT TAG: 15 764message GscInfo { 765 // The FW image flashed to the chip in the provision stage of the test. 766 // Example: "gs://chromeos-image-archive/firmware-ti50-postsubmit/R126-15855.0.0-97601-8750535029452566225" 767 string gsc_buildurl = 1; 768 769 // Serial number of the GSC chip (and CCD USB serial). 770 // Example: "1482101a-4c2ac261" 771 string gsc_ccd_serial = 2; 772 773 // Version number of the devboardservice container. 774 // Example: "1.30" 775 string gsc_devboardservice_version = 3; 776 777 // Serial number of the hyperdebug HW (and USB serial). 778 // Example: "206636793452" 779 string gsc_hyperdebug_serial = 4; 780 781 // Version number of the hyperdebug firmware. 782 // Example: "hyperdebug_20230517_01" 783 string gsc_hyperdebug_version = 5; 784 785 // Version number of the opentitantool. 786 string gsc_opentitantool_version = 6; 787 788 // From console of live image, via devboardservice GscVersion grpc. 789 // Example: "0.0.53" 790 string gsc_ro_version = 7; 791 792 // From console of live image, via devboardservice GscVersion grpc. 793 // Extract from version string ti50_common_tot:v0.0.1235-a1605766. 794 // Example: "tot" 795 string gsc_rw_branch = 8; 796 797 // From console of live image, via devboardservice GscVersion grpc. 798 // Extract from version string ti50_common_tot:v0.0.1235-a1605766. 799 // Example: "1235" 800 string gsc_rw_rev = 9; 801 802 // From console of live image, via devboardservice GscVersion grpc. 803 // Extract from version string ti50_common_tot:v0.0.1235-a1605766 804 // Example: "a1605766" 805 string gsc_rw_sha = 10; 806 807 // From console of live image, via devboardservice GscVersion grpc. 808 // Example: "0.26.81" 809 string gsc_rw_version = 11; 810 811 // Version number for the tast tests. 812 // Example: "R125-15837.0.0" 813 string gsc_tast_version = 12; 814 815 // Serial number of the GSC board. 816 // Example: "123882-0008" 817 string gsc_testbed_serial = 13; 818 819 // From devboardservice Query grpc. 820 // Example: "gsc_dt_shield" 821 string gsc_testbed_type = 14; 822} 823