| // Copyright 2020 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| syntax = "proto3"; |
| |
| package test.rtd.v1; |
| |
| option go_package = "go.chromium.org/chromiumos/infra/proto/go/test/invocation"; |
| |
| import "lab/peripherals.proto"; |
| import "lab/services/client.proto"; |
| import "test/common/device.proto"; |
| import "test/rtd/v1/progress.proto"; |
| |
| // Input to a Remote Test Driver invocation. |
| // |
| // TODO(crbug.com/1051691): Link to a reference implementation of Remote Test |
| // Server & Remote Test Driver. |
| message Invocation { |
| // Progress sink to be used to report progress of the Remote Test Driver |
| // invocation to the surrounding Remote Test Server. |
| ProgressSinkClientConfig progress_sink_client_config = 1; |
| |
| // Set of DUTs used for each of the requests in this invocation. |
| repeated DUT duts = 2; |
| |
| // Smallest unit of an invocation request for which results must be reported. |
| // |
| // An invocation must execute all requests serially in-order. This assumption |
| // is necessary for future support of test sequences in test plans. |
| repeated Request requests = 3; |
| |
| // Configuration information for using Test Lab Services to interact |
| // with DUTs and their peripherals. |
| lab.services.ClientConfig test_lab_services_config = 4; |
| } |
| |
| |
| // Contains all configuration data required to interact with a single device |
| // under test during a test invocation. |
| message DUT { |
| // Device Under Test sepcification. |
| test.common.Device device =1; |
| |
| // Peripherals information about the lab deployment of the device. |
| lab.Peripherals peripherals = 2; |
| |
| // Name for the DUT for using Test Lab Services to interact with the |
| // device and its peripherals. |
| // The RTD must pass this to certain Test Lab Service RPCs to specify |
| // DUTs to act on. |
| // See the tls.OpenDutPortRequest message for an example of where |
| // this is used. |
| string tls_dut_name = 3; |
| } |
| |
| // Request for execution of a single test.metadata.Test |
| message Request { |
| // name must be unique across all requests in this invocation. |
| // |
| // Remote Test Drivers are recommended to use name as the opaque tag |
| // required by the Test Lab Services API. Thus, name should be unique across |
| // all invocations to simplify analytics. UUIDs are recommended. |
| // |
| // See also: |
| // Test Lab Services API: tls/README.md |
| string name = 1; |
| |
| // The test to execute, identified by the test.metadata.Test.name field. |
| // |
| // Note that the request does not contain a reference to the Remote Test |
| // Driver to use, as the request is an input to the Remote Test Driver |
| // invocation. |
| string test = 2; |
| |
| // Per-request Remote Test Server environment configuration. |
| message Environment { |
| // Absolute path to a directory where prod-critical log-data may be written. |
| // |
| // This directory must be created by Remote Test Server prior to the Remote |
| // Test Driver invocation and its contents must be successfully offloaded to |
| // the requested long-term storage for the request to be considered |
| // successful. |
| // |
| // Note: Remote Test Drivers should use |
| // test.invocation.ProgressClient.ReportLogData() to report logs whenever |
| // possible. This log-data reporting feature is grandfathered into the |
| // current API to support test-specific critical log-data reporting. |
| string critical_log_data_path = 1; |
| |
| // Absolute path to a directory where non prod-critical log-data may be |
| // written. |
| // |
| // This directory must be created by Remote Test Server prior to the Remote |
| // Test Driver invocation. It's contents may be offloaded to long-term |
| // storage as a best effort asynchronous task. |
| // |
| // Note: Remote Test Drivers should use |
| // test.invocation.ProgressClient.ReportLogData() to report logs whenever |
| // possible. This log-data reporting feature is grandfathered into the |
| // current API to support test-specific log files. |
| string log_data_path = 2; |
| } |
| |
| // Environment configuration set by the Remote Test Server for a specific |
| // request of the Remote Test Driver. |
| Environment environment = 3; |
| } |