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.api; 8 9option go_package = "go.chromium.org/chromiumos/config/go/test/api"; 10 11import "google/protobuf/any.proto"; 12import "chromiumos/test/api/test_case_result.proto"; 13import "chromiumos/test/api/test_execution_metadata.proto"; 14import "chromiumos/test/api/test_suite.proto"; 15import "chromiumos/test/lab/api/dut.proto"; 16import "chromiumos/test/lab/api/ip_endpoint.proto"; 17 18// CrosTestRequest specifies test suites, DUTs and other test-related 19// information to run tests. 20message CrosTestRequest { 21 message Device { 22 // DUT information. 23 chromiumos.test.lab.api.Dut dut = 1; 24 // DUT Server address. 25 chromiumos.test.lab.api.IpEndpoint dut_server = 2; 26 // Provision server address. 27 chromiumos.test.lab.api.IpEndpoint provision_server = 3; 28 // TestLibs server address. 29 chromiumos.test.lab.api.IpEndpoint libs_server = 4; 30 // Devboard server address. 31 chromiumos.test.lab.api.IpEndpoint devboard_server = 5; 32 } 33 // Test suites to run (by tag or explicit list of tests) 34 repeated TestSuite test_suites = 1; 35 // Primary DUT 36 Device primary = 2; 37 // A list of companion hosts to be used for running tests. 38 repeated Device companions = 3; 39 // Inventory Server address. 40 chromiumos.test.lab.api.IpEndpoint inventory_server = 4; 41 // Test harness specific metadata 42 google.protobuf.Any metadata = 5; 43 // Generic args which will be directly passed to the harness. The driver is responsible for handling them 44 repeated Arg args = 6; 45 46 // Publish server address. 47 repeated PublishServer publish_servers = 7; 48} 49 50message PublishServer { 51 string name = 1; 52 chromiumos.test.lab.api.IpEndpoint address = 2; 53} 54 55message CrosTestResponse { 56 repeated TestCaseResult test_case_results = 1; 57 google.protobuf.Any metadata = 2; 58 repeated GivenTestResult given_test_results =3; 59 60 // useful when 1 given TC results in many child results 61 message GivenTestResult { 62 string parent_test = 1; 63 repeated TestCaseResult child_test_case_results = 2; 64 } 65} 66