• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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