summaryrefslogtreecommitdiff
path: root/test_json.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2009-08-19 19:30:24 +0000
committerEric S. Raymond <esr@thyrsus.com>2009-08-19 19:30:24 +0000
commitccca0962fbf1ffce799256fd05fa917170447052 (patch)
treefce942622b0b59e256139b28b1420bfc143c921d /test_json.c
parent5e8ed57bfdd5f2af710bb073a37bc36cb92d2a37 (diff)
downloadgpsd-ccca0962fbf1ffce799256fd05fa917170447052.tar.gz
Parsing of JSON VERSION response, with unit test.
Diffstat (limited to 'test_json.c')
-rw-r--r--test_json.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/test_json.c b/test_json.c
index d5879d55..4ce512c7 100644
--- a/test_json.c
+++ b/test_json.c
@@ -121,7 +121,7 @@ const struct json_attr_t json_attrs_4[] = {
const char *json_str5 = "{\"class\":\"DEVICE\",\
\"path\":\"/dev/ttyUSB0\",\
- \"type\":[\"GPS\",\"AIS\"],\
+ \"flags\":5,\
\"driver\":\"Foonly\",\"subtype\":\"Foonly Frob\"\
}";
@@ -159,6 +159,12 @@ const struct json_attr_t json_attrs_6[] = {
{NULL},
};
+/* Case 7: test parsing of version response */
+
+const char *json_str7 = "{\"class\":\"VERSION\",\
+ \"release\":\"2.40dev\",\"rev\":\"dummy-revision\",\
+ \"api_major\":3,\"api_minor\":1}";
+
int main(int argc UNUSED, char *argv[] UNUSED)
{
int status;
@@ -206,7 +212,7 @@ int main(int argc UNUSED, char *argv[] UNUSED)
status = libgps_json_unpack(json_str5, &gpsdata);
ASSERT_CASE(5, status);
ASSERT_STRING("path", gpsdata.devices.list[0].path, "/dev/ttyUSB0");
- ASSERT_INTEGER("datatypes",gpsdata.devices.list[0].datatypes,SEEN_GPS|SEEN_AIS);
+ ASSERT_INTEGER("flags",gpsdata.devices.list[0].flags, 5);
ASSERT_STRING("driver", gpsdata.devices.list[0].driver, "Foonly");
status = json_read_object(json_str6, json_attrs_6, NULL);
@@ -224,6 +230,13 @@ int main(int argc UNUSED, char *argv[] UNUSED)
ASSERT_INTEGER("dumbstruck[2].count", dumbstruck[2].count, 4);
ASSERT_INTEGER("dumbstruck[3].count", dumbstruck[3].count, 1);
+ status = libgps_json_unpack(json_str7, &gpsdata);
+ ASSERT_CASE(7, status);
+ ASSERT_STRING("release", gpsdata.version.release, "2.40dev");
+ ASSERT_STRING("rev", gpsdata.version.rev, "dummy-revision");
+ ASSERT_INTEGER("api_major", gpsdata.version.api_major, 3);
+ ASSERT_INTEGER("api_minor", gpsdata.version.api_minor, 1);
+
(void)fprintf(stderr, "succeeded.\n");
exit(0);