MCPcopy Create free account
hub / github.com/aws/clock-bound / feed_serializes_events

Function feed_serializes_events

clock-bound/src/daemon/clock_sync_algorithm.rs:247–284  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

245 #[test]
246 #[tracing_test::traced_test]
247 fn feed_serializes_events() {
248 // Most logs are permeable to change. Make sure that we log a json event.
249
250 let event = event::Ntp::builder()
251 .tsc_pre(TscCount::new(500))
252 .tsc_post(TscCount::new(1000))
253 .ntp_data(event::NtpData {
254 server_recv_time: Instant::from_days(1),
255 server_send_time: Instant::from_days(2),
256 root_delay: Duration::from_micros(50),
257 root_dispersion: Duration::from_millis(17),
258 stratum: Stratum::TWO,
259 })
260 .build()
261 .unwrap();
262
263 let event = RoutableEvent::LinkLocal(event);
264
265 let mut csa = ClockSyncAlgorithm::builder()
266 .link_local(source::LinkLocal::new(Skew::from_ppm(15.0)))
267 .ntp_sources(vec![])
268 .selected_clock(Arc::new(SelectedClockSource::default()))
269 .selector(Selector::new(Skew::from_ppm(15.0)))
270 .build();
271
272 let clock_parameters = csa.feed(event.clone());
273 assert!(clock_parameters.is_none());
274
275 let serialized_event = serde_json::to_string(&event).unwrap();
276 let serialized_output = serde_json::to_string(&clock_parameters).unwrap();
277
278 // tracing escapes quotes
279 let serialized_event = serialized_event.replace("\"", r#"\""#);
280 let serialized_output = serialized_output.replace("\"", r#"\""#);
281
282 assert!(logs_contain(&serialized_event));
283 assert!(logs_contain(&serialized_output));
284 }
285
286 #[rstest]
287 #[case(SourceInfo::LinkLocal(Stratum::TWO), ClockSource::Server(Ipv4Addr::from_str("169.254.169.123").unwrap().into()), Stratum::TWO)]

Callers

nothing calls this directly

Calls 6

newFunction · 0.50
LinkLocalClass · 0.50
buildMethod · 0.45
tsc_postMethod · 0.45
tsc_preMethod · 0.45
feedMethod · 0.45

Tested by

no test coverage detected