summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-02-22 15:59:51 -0800
committerGary E. Miller <gem@rellim.com>2019-02-22 15:59:51 -0800
commitae2ebe25de183ddd576615fa80682d6d6a5b0ffe (patch)
treeae3af43ed4cacdeda551fc2b996df9eb7e9b0304 /tests
parentf1be39110e39e5c8d095200231a75aea3afecd57 (diff)
downloadgpsd-ae2ebe25de183ddd576615fa80682d6d6a5b0ffe.tar.gz
deg_to_s(): Add check, and regression test, for not a NaN.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_gpsdclient.c17
1 files changed, 15 insertions, 2 deletions
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 <math.h> /* for nan() */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -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);