running_process/broker/protocol_v2/
mod.rs1#[allow(missing_docs)]
12mod prost_generated {
13 include!(concat!(env!("OUT_DIR"), "/running_process.broker.v2.rs"));
14}
15
16pub use prost_generated::*;
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21 use prost::Message;
22
23 #[test]
26 fn service_definition_without_http_round_trips() {
27 let original = ServiceDefinition {
28 service_name: "zccache".to_owned(),
29 http_server: None,
30 };
31
32 let bytes = original.encode_to_vec();
33 let decoded = ServiceDefinition::decode(bytes.as_slice())
34 .expect("encoded ServiceDefinition decodes");
35
36 assert_eq!(decoded.service_name, "zccache");
37 assert!(decoded.http_server.is_none());
38 }
39
40 #[test]
43 fn service_definition_with_http_round_trips() {
44 let original = ServiceDefinition {
45 service_name: "fbuild".to_owned(),
46 http_server: Some(HttpServerCapability {
47 bind_addr: "127.0.0.1".to_owned(),
48 health_path: "/healthz".to_owned(),
49 display_name: "fbuild status".to_owned(),
50 }),
51 };
52
53 let bytes = original.encode_to_vec();
54 let decoded = ServiceDefinition::decode(bytes.as_slice())
55 .expect("encoded ServiceDefinition decodes");
56
57 let cap = decoded
58 .http_server
59 .expect("http_server survives round-trip");
60 assert_eq!(decoded.service_name, "fbuild");
61 assert_eq!(cap.bind_addr, "127.0.0.1");
62 assert_eq!(cap.health_path, "/healthz");
63 assert_eq!(cap.display_name, "fbuild status");
64 }
65
66 #[test]
69 fn http_server_capability_empty_defaults_survive_round_trip() {
70 let original = ServiceDefinition {
71 service_name: "minimal".to_owned(),
72 http_server: Some(HttpServerCapability::default()),
73 };
74
75 let bytes = original.encode_to_vec();
76 let decoded = ServiceDefinition::decode(bytes.as_slice())
77 .expect("encoded ServiceDefinition decodes");
78
79 let cap = decoded
80 .http_server
81 .expect("http_server survives round-trip");
82 assert!(cap.bind_addr.is_empty());
83 assert!(cap.health_path.is_empty());
84 assert!(cap.display_name.is_empty());
85 }
86
87 #[test]
90 fn backend_http_ready_round_trips() {
91 let original = BackendHttpReady { port: 49_152 };
92
93 let bytes = original.encode_to_vec();
94 let decoded =
95 BackendHttpReady::decode(bytes.as_slice()).expect("BackendHttpReady decodes");
96
97 assert_eq!(decoded.port, 49_152);
98 }
99
100 #[test]
103 fn get_broker_http_endpoint_request_round_trips_empty() {
104 let original = GetBrokerHttpEndpointRequest::default();
105
106 let bytes = original.encode_to_vec();
107 let decoded = GetBrokerHttpEndpointRequest::decode(bytes.as_slice())
108 .expect("GetBrokerHttpEndpointRequest decodes");
109
110 assert_eq!(decoded, GetBrokerHttpEndpointRequest::default());
111 }
112
113 #[test]
115 fn get_broker_http_endpoint_response_round_trips() {
116 let original = GetBrokerHttpEndpointResponse {
117 port: 8765,
118 pid: 12_345,
119 };
120
121 let bytes = original.encode_to_vec();
122 let decoded = GetBrokerHttpEndpointResponse::decode(bytes.as_slice())
123 .expect("GetBrokerHttpEndpointResponse decodes");
124
125 assert_eq!(decoded.port, 8765);
126 assert_eq!(decoded.pid, 12_345);
127 }
128}