1syntax = "proto2"; 2 3// Modified form of proto used for TestTracker. 4 5// The Result is the base proto for describing Results that can be stored 6// for writing to disk or uploading to a system. 7 8// Example: 9// name: "Test Case" 10// uuid: "d9e80ae6-dfa9-4713-9cc6-26231ff58f4b" 11// description: "This is sample test case" 12// detail: "This is really long text blob (test tracker test case text)" 13// status: PASSED 14 15// Each Property a key/value pair with a type based on the oneof field. 16// The default should be a string. 17message Property { 18 optional string name = 1; 19 // Reserved <100 for use with concrete fields. 20 oneof value { 21 // String representation of the property. 22 string string_value = 101; 23 // Integer(always use int64) representation of the property. 24 int64 int_value = 102; 25 // Floating(always use double) point representation of the property. 26 double double_value = 103; 27 // The json_value is a special case of string - this just signals the caller 28 // that the value should be parsable via json. 29 string json_value = 104; 30 // Boolean representation of the property. 31 bool bool_value = 105; 32 // Byte representation of the property. 33 bytes byte_value = 106; 34 } 35} 36 37// A Result contains information about the each piece of the report. 38// Status enum's define the state of a particular result. 39// In a perfect world everything will be PASSED. 40// 41message Result { 42 enum Status { 43 STATUS_UNKNOWN = 0; 44 PASSED = 1; // Completed and all operators are evaluated to True. 45 FAILED = 2; // Completed and at least one operator has failed. 46 ERROR = 3; // Completed but there was an error reported. 47 // 'code' should be assigned with the exact status. 48 INTERRUPTED = 4; // The operation was initiated but did not complete. 49 // This could be caused by a timeout or 50 // by a user requesting cancellation mid-way. 51 CANCELLED = 5; // Same as interrupted but did not start. 52 FILTERED = 6; // Scheduled but some precondition caused it to be 53 // removed from schedule. 54 SKIPPED = 7; // Scheduled but was administratively skipped. 55 SUPPRESSED = 8; // Flaky and we don't want it be official. 56 BLOCKED = 9; // Test blocked by other test(s). 57 TBR = 17; // To be reviewed, test requires additional result 58 // assessment. 59 } 60 61 // Name of the result in the tree. 62 optional string name = 1; 63 optional string uuid = 2; // uuid 64 optional string description = 3; // Text blob about the result. 65 optional string detail = 4; // Detailed text about the result. 66 // Key/Value Property pairs. 67 // If duplicate keys are presented the last value is taken. 68 repeated Property property = 5; // Key/Value Property pairs. 69 // Time in ISO UTC (http://en.wikipedia.org/wiki/ISO_8601). 70 // This is the start of the result. 71 optional string timestamp = 10; 72 // Status defines the current state of this result. 73 optional Status status = 13 [default = STATUS_UNKNOWN]; 74}