diff options
author | Markus Armbruster <armbru@redhat.com> | 2020-12-10 17:14:52 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2020-12-19 10:37:16 +0100 |
commit | 28f1c1f6e07c4bb4d79bed9474d1425c55e21712 (patch) | |
tree | 514b596e04782c46ada755ef766029fd59f10547 /tests | |
parent | 2a02c1398a47e75aa6963baf7dbfa68a54dc2e41 (diff) | |
download | qemu-28f1c1f6e07c4bb4d79bed9474d1425c55e21712.zip qemu-28f1c1f6e07c4bb4d79bed9474d1425c55e21712.tar.gz qemu-28f1c1f6e07c4bb4d79bed9474d1425c55e21712.tar.bz2 |
test-visitor-serialization: Clean up test_primitives()
test_primitives() uses union member intmax_t max to compare the
integer members. Unspecified behavior. Has worked fine for many
years, though. Clean it up.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20201210161452.2813491-11-armbru@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test-visitor-serialization.c | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/tests/test-visitor-serialization.c b/tests/test-visitor-serialization.c index cf19924..dfe120a 100644 --- a/tests/test-visitor-serialization.c +++ b/tests/test-visitor-serialization.c @@ -55,7 +55,6 @@ typedef struct PrimitiveType { int16_t s16; int32_t s32; int64_t s64; - intmax_t max; } value; enum PrimitiveTypeKind type; const char *description; @@ -307,15 +306,46 @@ static void test_primitives(gconstpointer opaque) &error_abort); g_assert(pt_copy != NULL); - if (pt->type == PTYPE_STRING) { + switch (pt->type) { + case PTYPE_STRING: g_assert_cmpstr(pt->value.string, ==, pt_copy->value.string); g_free((char *)pt_copy->value.string); - } else if (pt->type == PTYPE_NUMBER) { + break; + case PTYPE_BOOLEAN: + g_assert_cmpint(pt->value.boolean, ==, pt->value.boolean); + break; + case PTYPE_NUMBER: g_assert_cmpfloat(pt->value.number, ==, pt_copy->value.number); - } else if (pt->type == PTYPE_BOOLEAN) { - g_assert_cmpint(!!pt->value.max, ==, !!pt->value.max); - } else { - g_assert_cmpint(pt->value.max, ==, pt_copy->value.max); + break; + case PTYPE_INTEGER: + g_assert_cmpint(pt->value.integer, ==, pt_copy->value.integer); + break; + case PTYPE_U8: + g_assert_cmpuint(pt->value.u8, ==, pt_copy->value.u8); + break; + case PTYPE_U16: + g_assert_cmpuint(pt->value.u16, ==, pt_copy->value.u16); + break; + case PTYPE_U32: + g_assert_cmpuint(pt->value.u32, ==, pt_copy->value.u32); + break; + case PTYPE_U64: + g_assert_cmpuint(pt->value.u64, ==, pt_copy->value.u64); + break; + case PTYPE_S8: + g_assert_cmpint(pt->value.s8, ==, pt_copy->value.s8); + break; + case PTYPE_S16: + g_assert_cmpint(pt->value.s16, ==, pt_copy->value.s16); + break; + case PTYPE_S32: + g_assert_cmpint(pt->value.s32, ==, pt_copy->value.s32); + break; + case PTYPE_S64: + g_assert_cmpint(pt->value.s64, ==, pt_copy->value.s64); + break; + case PTYPE_EOL: + g_assert_not_reached(); } ops->cleanup(serialize_data); |