summaryrefslogtreecommitdiff
path: root/libloragw/tst/test_loragw_gps.c
diff options
context:
space:
mode:
Diffstat (limited to 'libloragw/tst/test_loragw_gps.c')
-rw-r--r--libloragw/tst/test_loragw_gps.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/libloragw/tst/test_loragw_gps.c b/libloragw/tst/test_loragw_gps.c
index c535878..6d41a0d 100644
--- a/libloragw/tst/test_loragw_gps.c
+++ b/libloragw/tst/test_loragw_gps.c
@@ -112,16 +112,36 @@ static void gps_process_sync(void) {
x = ppm_tstamp + 500000;
printf(" * Test of timestamp counter <-> GPS value conversion *\n");
printf(" Test value: %u\n", x);
- lgw_cnt2gps(ppm_ref, x, &y);
+ i = lgw_cnt2gps(ppm_ref, x, &y);
printf(" Conversion to GPS: %lld.%09ld\n", (long long)y.tv_sec, y.tv_nsec);
- lgw_gps2cnt(ppm_ref, y, &z);
+ i = lgw_gps2cnt(ppm_ref, y, &z);
printf(" Converted back: %u ==> %dµs\n", z, (int32_t)(z-x));
printf(" * Test of timestamp counter <-> UTC value conversion *\n");
printf(" Test value: %u\n", x);
- lgw_cnt2utc(ppm_ref, x, &y);
+ i = lgw_cnt2utc(ppm_ref, x, &y);
printf(" Conversion to UTC: %lld.%09ld\n", (long long)y.tv_sec, y.tv_nsec);
- lgw_utc2cnt(ppm_ref, y, &z);
+ i = lgw_utc2cnt(ppm_ref, y, &z);
printf(" Converted back: %u ==> %dµs\n", z, (int32_t)(z-x));
+
+ x = ppm_tstamp - 500000;
+ printf(" * Test of timestamp counter <-> past GPS value conversion *\n");
+ printf(" Test value: %u\n", x);
+ i = lgw_cnt2gps(ppm_ref, x, &y);
+ printf(" Conversion to GPS: %lld.%09ld\n", (long long)y.tv_sec, y.tv_nsec);
+ i = lgw_gps2cnt(ppm_ref, y, &z);
+ if (i != LGW_GPS_ERROR)
+ printf(" ** FAILED **: Converted past time back: %u ==> %dµs\n", z, (int32_t)(z-x));
+ else
+ printf(" ** PASS **: Could not convert to CNT, GPS time has passed\n");
+ printf(" * Test of timestamp counter <-> past UTC value conversion *\n");
+ printf(" Test value: %u\n", x);
+ i = lgw_cnt2utc(ppm_ref, x, &y);
+ printf(" Conversion to UTC: %lld.%09ld\n", (long long)y.tv_sec, y.tv_nsec);
+ i = lgw_utc2cnt(ppm_ref, y, &z);
+ if (i != LGW_GPS_ERROR)
+ printf(" ** FAILED **: Converted past time back: %u ==> %dµs\n", z, (int32_t)(z-x));
+ else
+ printf(" ** PASS **: Could not convert to CNT, UTC time has passed\n");
}
static void gps_process_coords(void) {