| # 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. |
| |
| load("//metadata/test_common.star", "test_common") |
| |
| load("@proto//chromiumos/config/api/test/harness/tnull/v1/tnull.proto", |
| tnull_pb = "chromiumos.config.api.test.tnull.v1" |
| ) |
| |
| load("//test/log-entries.star", "ENTRIES") |
| |
| DOC = """ |
| {name}: Helper test verifying reporting {log_type} works correctly. |
| Used to verify that the RTD's interface with the RTS is working. |
| """ |
| |
| def _tests(): |
| return [ |
| _define_log_test("no-log", "absent logs", []), |
| _define_log_test("simple-log", "a simple log", [ |
| _make_mock_log("simple-sink", ENTRIES.single_log) |
| ]), |
| _define_log_test("parallel-log", "logs in parallel", [ |
| _make_mock_log("split-sink", ENTRIES.split_log) |
| ]), |
| _define_log_test("multiline-logs", "a single-stream multi-line log", |
| [_make_mock_log("simple-sink", ENTRIES.second_log)]), |
| _define_log_test("two-logs", "two logs to one request", |
| [_make_mock_log("simple-sink", ENTRIES.single_log), |
| _make_mock_log("simple-sink", ENTRIES.second_log)]), |
| _define_log_test("two-requests", "logs to two requests", |
| [_make_mock_log("simple-sink", ENTRIES.single_log), |
| _make_mock_log("second-sink", ENTRIES.second_log)]), |
| _define_log_test("mixed-logs", "two types of log to one request", |
| [_make_mock_log("simple-sink", ENTRIES.single_log), |
| _make_mock_log("simple-sink", ENTRIES.split_log)]), |
| ] |
| |
| def _define_log_test(test_name, log_type, logs): |
| """ |
| Args: |
| log_type: short string description of log contents |
| logs: list of tnull_pb.MockLog objects |
| """ |
| return test_common.define_test( |
| test_name = test_name, |
| purpose = "report a {} to the RTS.".format(log_type), |
| doc = DOC.format(name = test_name, log_type = log_type), |
| owner_emails = ["chromeos-test-platform-team@google.com"], |
| owner_groups = ["chromeos-test-platform-team"], |
| setup = test_common.define_setup(setup_config = {"logs": logs}), |
| attrs = ["suite:dummy"], |
| steps = [_log_step("{}-request".format(test_name))] |
| ) |
| |
| |
| def _make_mock_log(sink, logs): |
| return tnull_pb.MockLog( |
| name = sink, |
| messages = logs |
| ) |
| |
| |
| def _log_step(request_name): |
| return { |
| "method": "log", |
| "common_args": { |
| "request": request_name, |
| }, |
| } |
| |
| TESTS = _tests() |