blob: 4a10e8b5b6c14fc60635591091c32925d053df97 [file] [log] [blame]
// Copyright 2020 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.
syntax = "proto3";
package pw.unit_test;
message TestCaseDescriptor {
// Name of the test suite to which this test case belongs.
string suite_name = 1;
// Name of the test case.
string test_name = 2;
// Path to the file in which the test case is defined.
string file_name = 3;
}
message TestCaseExpectation {
// The source code for the expression which was run.
string expression = 1;
// The expression with arguments evaluated.
string evaluated_expression = 2;
// Line number at which the expectation is located.
uint32 line_number = 3;
// Whether the expectation succeeded.
bool success = 4;
}
enum TestCaseResult {
SUCCESS = 0;
FAILURE = 1;
SKIPPED = 2;
}
message TestRunStart {}
message TestRunEnd {
uint32 passed = 1;
uint32 failed = 2;
uint32 skipped = 3;
uint32 disabled = 4;
}
message Event {
oneof type {
// Unit test run has started.
TestRunStart test_run_start = 1;
// Unit test run has ended.
TestRunEnd test_run_end = 2;
// Start of a test case.
TestCaseDescriptor test_case_start = 3;
// End of a test case.
TestCaseResult test_case_end = 4;
// Encountered a disabled test case.
TestCaseDescriptor test_case_disabled = 5;
// Expectation statement within a test case.
TestCaseExpectation test_case_expectation = 6;
}
};
message TestRunRequest {
// Whether to send expectation events for successful checks.
bool report_passed_expectations = 1;
// Optional list of test suites to run.
repeated string test_suite = 2;
}
service UnitTest {
// Runs registered unit tests, streaming back test events as they occur.
rpc Run(TestRunRequest) returns (stream Event) {}
}