// Copyright 2021 The ChromiumOS Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto3"; package chromiumos.test.api; option go_package = "go.chromium.org/chromiumos/config/go/test/api"; // Defines an atomic unit of test work that's independently executable. // // Test cases are the atomic building blocks used to define/generate test plans // and then ultimately scheduling units of work (batched or independent). // // Test case definitions can come from any execution workflow/environment. // E.g. Automated test cases will generally be defined/reported by the // various test-drivers (e.g. Tast/Tauto/...) at build time. // // Manual test cases will be defined/managed directly in starlark config // and then act as the building blocks for manual test planning/scheduling. // // Test cases also are the atom at which test results can be reported. message TestCase { // Globally unique (for ChromeOS) string id for a given test case. Id id = 1; message Id { string value = 1; } // Human friendly name string name = 2; // Tags associated with a given test case, which drive scheduling logic // based on tag inclusion or exclusion criteria. repeated Tag tags = 3; message Tag { string value = 1; } // Dependencies for a given test cases, which drive scheduling logic for // dut matching. repeated Dependency dependencies = 4; message Dependency { string value = 1; } // BuildDeps for a given test cases, which drive test filtering logic for // scheduling. repeated BuildDeps build_dependencies = 5; message BuildDeps { string value = 1; } } // List of globally unique test case identifiers message TestCaseIdList { repeated TestCase.Id test_case_ids = 1; } message TestCaseList { repeated TestCase test_cases = 1; }