| // Copyright 2014 The Bazel Authors. All rights reserved. | 
 | // | 
 | // 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 | 
 | // | 
 | //    http://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 = "proto2"; | 
 |  | 
 | package blaze; | 
 |  | 
 | option java_package = "com.google.devtools.build.lib.view.test"; | 
 |  | 
 | // Status data of test cases which failed (used only for printing test summary) | 
 | enum FailedTestCasesStatus { | 
 |   /** Information about every test case is available. */ | 
 |   FULL = 1; | 
 |   /** Information about some test cases may be missing. */ | 
 |   PARTIAL = 2; | 
 |   /** No information about individual test cases. */ | 
 |   NOT_AVAILABLE = 3; | 
 |   /** This is an empty object still without data. */ | 
 |   EMPTY = 4; | 
 | } | 
 |  | 
 | // Detailed status data for a TestRunnerAction execution. | 
 | enum BlazeTestStatus { | 
 |   NO_STATUS = 0; | 
 |   PASSED = 1; | 
 |   FLAKY = 2; | 
 |   TIMEOUT = 3; | 
 |   FAILED = 4; | 
 |   INCOMPLETE = 5; | 
 |   REMOTE_FAILURE = 6; | 
 |   FAILED_TO_BUILD = 7; | 
 |   BLAZE_HALTED_BEFORE_TESTING = 8; | 
 | } | 
 |  | 
 | // TestCase contains detailed data about all tests (cases/suites/decorators) | 
 | // ran, structured in a tree. This data will be later used to present the tests | 
 | // by the web status server. | 
 | message TestCase { | 
 |   enum Type { | 
 |     TEST_CASE = 0; | 
 |     TEST_SUITE = 1; | 
 |     TEST_DECORATOR = 2; | 
 |     UNKNOWN = 3; | 
 |   } | 
 |  | 
 |   enum Status { | 
 |     PASSED = 0; | 
 |     FAILED = 1; | 
 |     ERROR = 2; | 
 |     SKIPPED = 3; | 
 |   } | 
 |  | 
 |   repeated TestCase child = 1; | 
 |   optional string name = 2; | 
 |   optional string class_name = 3; | 
 |   optional int64 run_duration_millis = 4; | 
 |   optional string result = 5; | 
 |   optional Type type = 6; | 
 |   optional Status status = 7; | 
 |   optional bool run = 8 [default = true]; | 
 | } | 
 |  | 
 | // TestResultData holds the outcome data for a single test action (A | 
 | // single test rule can result in multiple actions due to sharding and | 
 | // runs_per_test settings.) | 
 | message TestResultData { | 
 |   // The following two fields are used for TestRunnerAction caching. | 
 |   // This reflects the fact that failing tests are successful | 
 |   // actions that might be cached, depending on option settings. | 
 |   optional bool cachable = 1; | 
 |   optional bool test_passed = 2; | 
 |  | 
 |   // Following data is informational. | 
 |   optional BlazeTestStatus status = 3 [default = NO_STATUS]; | 
 |   optional string status_details = 16; | 
 |   optional int32 exit_code = 17; | 
 |   repeated string failed_logs = 4; | 
 |   repeated string warning = 5; | 
 |   optional bool has_coverage = 6; | 
 |  | 
 |   // Returns if this was cached in remote execution. | 
 |   optional bool remotely_cached = 7; | 
 |  | 
 |   // Returns true if this was executed remotely | 
 |   optional bool is_remote_strategy = 8; | 
 |  | 
 |   // All associated test times (in ms). | 
 |   repeated int64 test_times = 9; | 
 |  | 
 |   // Passed log paths. Set if the test passed. | 
 |   optional string passed_log = 10; | 
 |  | 
 |   // Test times, without remote execution overhead (in ms). | 
 |   repeated int64 test_process_times = 11; | 
 |  | 
 |   // Total time in ms. | 
 |   optional int64 run_duration_millis = 12; | 
 |  | 
 |   // Start time of the test action in ms since the epoch. | 
 |   optional int64 start_time_millis_epoch = 15; | 
 |  | 
 |   // Additional build info | 
 |   optional TestCase test_case = 13; | 
 |   optional FailedTestCasesStatus failed_status = 14; | 
 | } |