MCPcopy Create free account
hub / github.com/chirpstack/chirpstack / test_handle_v2_app_time_req

Function test_handle_v2_app_time_req

chirpstack/src/applayer/clocksync.rs:315–461  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

313
314 #[tokio::test]
315 async fn test_handle_v2_app_time_req() {
316 struct Test {
317 name: String,
318 rx_info: gw::UplinkRxInfo,
319 req: clocksync::v2::AppTimeReqPayload,
320 expected: Option<clocksync::v2::AppTimeAnsPayload>,
321 }
322
323 let tests = vec![
324 Test {
325 name: "device synced".into(),
326 rx_info: gw::UplinkRxInfo {
327 time_since_gps_epoch: Some(Duration::from_secs(1234).into()),
328 ..Default::default()
329 },
330 req: clocksync::v2::AppTimeReqPayload {
331 device_time: 1234,
332 param: clocksync::v2::AppTimeReqPayloadParam {
333 token_req: 8,
334 ans_required: false,
335 },
336 },
337 expected: None,
338 },
339 Test {
340 name: "device synced - ans required".into(),
341 rx_info: gw::UplinkRxInfo {
342 time_since_gps_epoch: Some(Duration::from_secs(1234).into()),
343 ..Default::default()
344 },
345 req: clocksync::v2::AppTimeReqPayload {
346 device_time: 1234,
347 param: clocksync::v2::AppTimeReqPayloadParam {
348 token_req: 8,
349 ans_required: true,
350 },
351 },
352 expected: Some(clocksync::v2::AppTimeAnsPayload {
353 time_correction: 0,
354 param: clocksync::v2::AppTimeAnsPayloadParam { token_ans: 8 },
355 }),
356 },
357 Test {
358 name: "device not synced (positive correction)".into(),
359 rx_info: gw::UplinkRxInfo {
360 time_since_gps_epoch: Some(Duration::from_secs(1234).into()),
361 ..Default::default()
362 },
363 req: clocksync::v2::AppTimeReqPayload {
364 device_time: 1200,
365 param: clocksync::v2::AppTimeReqPayloadParam {
366 token_req: 8,
367 ans_required: false,
368 },
369 },
370 expected: Some(clocksync::v2::AppTimeAnsPayload {
371 time_correction: 34,
372 param: clocksync::v2::AppTimeAnsPayloadParam { token_ans: 8 },

Callers

nothing calls this directly

Calls 8

prepareFunction · 0.85
flush_for_dev_euiFunction · 0.85
unwrapMethod · 0.80
handle_uplinkFunction · 0.70
createFunction · 0.50
get_for_dev_euiFunction · 0.50
intoMethod · 0.45
to_vecMethod · 0.45

Tested by

no test coverage detected