On Mon, Nov 27, 2017 at 11:45:52AM +0000, Daniel P. Berrange wrote: > On Fri, Nov 24, 2017 at 06:34:03PM +0100, Thomas Huth wrote: > > On 24.11.2017 15:32, Roman Kagan wrote: > > > It's going to be useful, in particular, in VMBus code massively using > > > uuids aka GUIDs. > > > > > > Signed-off-by: Roman Kagan <rka...@virtuozzo.com> > > > --- > > > include/qemu/uuid.h | 2 ++ > > > tests/test-uuid.c | 24 ++++++++++++++++++++++++ > > > util/uuid.c | 7 ++++++- > > > 3 files changed, 32 insertions(+), 1 deletion(-) > > > > > > diff --git a/include/qemu/uuid.h b/include/qemu/uuid.h > > > index afe4840296..09489ce5c5 100644 > > > --- a/include/qemu/uuid.h > > > +++ b/include/qemu/uuid.h > > > @@ -48,6 +48,8 @@ void qemu_uuid_generate(QemuUUID *out); > > > > > > int qemu_uuid_is_null(const QemuUUID *uu); > > > > > > +int qemu_uuid_is_equal(const QemuUUID *lhv, const QemuUUID *rhv); > > > + > > > void qemu_uuid_unparse(const QemuUUID *uuid, char *out); > > > > > > char *qemu_uuid_unparse_strdup(const QemuUUID *uuid); > > > diff --git a/tests/test-uuid.c b/tests/test-uuid.c > > > index d3a2791fd4..c6c8148117 100644 > > > --- a/tests/test-uuid.c > > > +++ b/tests/test-uuid.c > > > @@ -116,6 +116,29 @@ static void test_uuid_is_null(void) > > > g_assert_false(qemu_uuid_is_null(&uuid_not_null_2)); > > > } > > > > > > +static void test_uuid_is_equal(void) > > > +{ > > > + int i; > > > + QemuUUID uuid; > > > + QemuUUID uuid_null = { }; > > > + QemuUUID uuid_not_null = { { { > > > + 0x58, 0x6e, 0xce, 0x27, 0x7f, 0x09, 0x41, 0xe0, > > > + 0x9e, 0x74, 0xe9, 0x01, 0x31, 0x7e, 0x9d, 0x42 > > > + } } }; > > > + QemuUUID uuid_null_2 = uuid_null; > > > + QemuUUID uuid_not_null_2 = uuid_not_null; > > > + > > > + g_assert(qemu_uuid_is_equal(&uuid_null, &uuid_null_2)); > > > + g_assert(qemu_uuid_is_equal(&uuid_not_null, &uuid_not_null_2)); > > > + g_assert_false(qemu_uuid_is_equal(&uuid_null, &uuid_not_null)); > > > + > > > + for (i = 0; i < 100; ++i) { > > > + qemu_uuid_generate(&uuid); > > > + g_assert_false(qemu_uuid_is_equal(&uuid_null, &uuid)); > > > + g_assert_false(qemu_uuid_is_equal(&uuid_not_null, &uuid)); > > > > Isn't there a very low chance that the last line triggers by accident? > > Or uuid_no_null guaranteed to not match the generated one? In the latter > > case, a comment with a short explanation might be helpful here... > > Regardless of that question, I think this is rather overkill when we are > just validating the memcmp() works correct in qemu_uuid_is_equal. The > for() loop here is not really adding any value over what the earlier > asserts already did. In fact the for() loop is arguably testing the > qemu_uuid_generate method, so better done in a separate unit test. > > IOW, I would just suggest deleting this for() loop as its adding no > value.
Well I thought it was just too dumb to have a testcase that tests basically nothing but memcmp, so I added this for() loop. I guess I'd better just drop this as a separate testcase, and merge the assertions into test_uuid_generate instead. Roman.