From ae2ebe25de183ddd576615fa80682d6d6a5b0ffe Mon Sep 17 00:00:00 2001 From: "Gary E. Miller" Date: Fri, 22 Feb 2019 15:59:51 -0800 Subject: deg_to_s(): Add check, and regression test, for not a NaN. --- tests/test_gpsdclient.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'tests/test_gpsdclient.c') diff --git a/tests/test_gpsdclient.c b/tests/test_gpsdclient.c index 7f31ae21..f4c93379 100644 --- a/tests/test_gpsdclient.c +++ b/tests/test_gpsdclient.c @@ -9,6 +9,7 @@ /* first so the #defs work */ #include "../gpsd_config.h" +#include /* for nan() */ #include #include #include @@ -23,6 +24,8 @@ struct test { char ddmmss[20]; }; +#define NANFLAG 9999 + struct test tests[] = { /* 1.999999995 sec */ {(1.999999995), @@ -82,8 +85,14 @@ struct test tests[] = { "nan", "nan"}, /* -361 */ - /* nan because out of range */ - {361, + /* nan, just because */ + {NANFLAG, + "nan", + "nan", + "nan"}, + /* FP_INFINITE */ + /* gcc too 'smart' to let us put a Nan here */ + {9999, "nan", "nan", "nan"}, @@ -120,6 +129,10 @@ int main(int argc, char **argv) for (i = 0; i < (sizeof(tests)/sizeof(struct test)); i++) { + if (NANFLAG == tests[i].deg) { + /* make it a NaN */ + tests[i].deg = nan("a"); + } s = deg_to_str (deg_dd, tests[i].deg); if (0 != strcmp(s, tests[i].dd)) { printf("ERROR: %s s/b %s\n", s, tests[i].dd); -- cgit v1.2.1