Skip to content

Commit

Permalink
tests/check-qjson: Examine QNum more thoroughly
Browse files Browse the repository at this point in the history
simple_number() checks only qnum_get_try_int().  Also check
qnum_get_try_uint() and qnum_get_double().

float_number() checks only qnum_get_double().  Also check
qnum_get_try_int() and qnum_get_try_uint().

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20201210161452.2813491-3-armbru@redhat.com>
  • Loading branch information
Markus Armbruster committed Dec 19, 2020
1 parent 3953f82 commit 1a68eb8
Showing 1 changed file with 16 additions and 3 deletions.
19 changes: 16 additions & 3 deletions tests/check-qjson.c
Expand Up @@ -807,16 +807,25 @@ static void simple_number(void)
};
int i;
QNum *qnum;
int64_t val;
int64_t ival;
uint64_t uval;
QString *str;

for (i = 0; test_cases[i].encoded; i++) {
qnum = qobject_to(QNum,
qobject_from_json(test_cases[i].encoded,
&error_abort));
g_assert(qnum);
g_assert(qnum_get_try_int(qnum, &val));
g_assert_cmpint(val, ==, test_cases[i].decoded);
g_assert(qnum_get_try_int(qnum, &ival));
g_assert_cmpint(ival, ==, test_cases[i].decoded);
if (test_cases[i].decoded >= 0) {
g_assert(qnum_get_try_uint(qnum, &uval));
g_assert_cmpuint(uval, ==, (uint64_t)test_cases[i].decoded);
} else {
g_assert(!qnum_get_try_uint(qnum, &uval));
}
g_assert_cmpfloat(qnum_get_double(qnum), ==,
(double)test_cases[i].decoded);

str = qobject_to_json(QOBJECT(qnum));
g_assert_cmpstr(qstring_get_str(str), ==,
Expand Down Expand Up @@ -885,6 +894,8 @@ static void float_number(void)
};
int i;
QNum *qnum;
int64_t ival;
uint64_t uval;
QString *str;

for (i = 0; test_cases[i].encoded; i++) {
Expand All @@ -893,6 +904,8 @@ static void float_number(void)
&error_abort));
g_assert(qnum);
g_assert_cmpfloat(qnum_get_double(qnum), ==, test_cases[i].decoded);
g_assert(!qnum_get_try_int(qnum, &ival));
g_assert(!qnum_get_try_uint(qnum, &uval));

str = qobject_to_json(QOBJECT(qnum));
g_assert_cmpstr(qstring_get_str(str), ==,
Expand Down

0 comments on commit 1a68eb8

Please sign in to comment.