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

Function test_handle_v1_app_time_req

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

Source from the content-addressed store, hash-verified

164
165 #[tokio::test]
166 async fn test_handle_v1_app_time_req() {
167 struct Test {
168 name: String,
169 rx_info: gw::UplinkRxInfo,
170 req: clocksync::v1::AppTimeReqPayload,
171 expected: Option<clocksync::v1::AppTimeAnsPayload>,
172 }
173
174 let tests = vec![
175 Test {
176 name: "device synced".into(),
177 rx_info: gw::UplinkRxInfo {
178 time_since_gps_epoch: Some(Duration::from_secs(1234).into()),
179 ..Default::default()
180 },
181 req: clocksync::v1::AppTimeReqPayload {
182 device_time: 1234,
183 param: clocksync::v1::AppTimeReqPayloadParam {
184 token_req: 8,
185 ans_required: false,
186 },
187 },
188 expected: None,
189 },
190 Test {
191 name: "device synced - ans required".into(),
192 rx_info: gw::UplinkRxInfo {
193 time_since_gps_epoch: Some(Duration::from_secs(1234).into()),
194 ..Default::default()
195 },
196 req: clocksync::v1::AppTimeReqPayload {
197 device_time: 1234,
198 param: clocksync::v1::AppTimeReqPayloadParam {
199 token_req: 8,
200 ans_required: true,
201 },
202 },
203 expected: Some(clocksync::v1::AppTimeAnsPayload {
204 time_correction: 0,
205 param: clocksync::v1::AppTimeAnsPayloadParam { token_ans: 8 },
206 }),
207 },
208 Test {
209 name: "device not synced (positive correction)".into(),
210 rx_info: gw::UplinkRxInfo {
211 time_since_gps_epoch: Some(Duration::from_secs(1234).into()),
212 ..Default::default()
213 },
214 req: clocksync::v1::AppTimeReqPayload {
215 device_time: 1200,
216 param: clocksync::v1::AppTimeReqPayloadParam {
217 token_req: 8,
218 ans_required: false,
219 },
220 },
221 expected: Some(clocksync::v1::AppTimeAnsPayload {
222 time_correction: 34,
223 param: clocksync::v1::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