util: add is_equal to UUID API
It's going to be useful, in particular, in VMBus code massively using uuids aka GUIDs. Signed-off-by: Roman Kagan <rkagan@virtuozzo.com> Message-Id: <20171127124355.26015-1-rkagan@virtuozzo.com> Signed-off-by: Fam Zheng <famz@redhat.com>
This commit is contained in:
parent
dbd73b569b
commit
bfab1aede0
@ -48,6 +48,8 @@ void qemu_uuid_generate(QemuUUID *out);
|
|||||||
|
|
||||||
int qemu_uuid_is_null(const QemuUUID *uu);
|
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);
|
void qemu_uuid_unparse(const QemuUUID *uuid, char *out);
|
||||||
|
|
||||||
char *qemu_uuid_unparse_strdup(const QemuUUID *uuid);
|
char *qemu_uuid_unparse_strdup(const QemuUUID *uuid);
|
||||||
|
@ -93,12 +93,18 @@ static inline bool uuid_is_valid(QemuUUID *uuid)
|
|||||||
|
|
||||||
static void test_uuid_generate(void)
|
static void test_uuid_generate(void)
|
||||||
{
|
{
|
||||||
|
QemuUUID uuid_not_null = { { {
|
||||||
|
0x58, 0x6e, 0xce, 0x27, 0x7f, 0x09, 0x41, 0xe0,
|
||||||
|
0x9e, 0x74, 0xe9, 0x01, 0x31, 0x7e, 0x9d, 0x42
|
||||||
|
} } };
|
||||||
QemuUUID uuid;
|
QemuUUID uuid;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < 100; ++i) {
|
for (i = 0; i < 100; ++i) {
|
||||||
qemu_uuid_generate(&uuid);
|
qemu_uuid_generate(&uuid);
|
||||||
g_assert(uuid_is_valid(&uuid));
|
g_assert(uuid_is_valid(&uuid));
|
||||||
|
g_assert_false(qemu_uuid_is_null(&uuid));
|
||||||
|
g_assert_false(qemu_uuid_is_equal(&uuid_not_null, &uuid));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,8 +174,8 @@ static void test_uuid_unparse_strdup(void)
|
|||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
g_test_init(&argc, &argv, NULL);
|
g_test_init(&argc, &argv, NULL);
|
||||||
g_test_add_func("/uuid/generate", test_uuid_generate);
|
|
||||||
g_test_add_func("/uuid/is_null", test_uuid_is_null);
|
g_test_add_func("/uuid/is_null", test_uuid_is_null);
|
||||||
|
g_test_add_func("/uuid/generate", test_uuid_generate);
|
||||||
g_test_add_func("/uuid/parse", test_uuid_parse);
|
g_test_add_func("/uuid/parse", test_uuid_parse);
|
||||||
g_test_add_func("/uuid/unparse", test_uuid_unparse);
|
g_test_add_func("/uuid/unparse", test_uuid_unparse);
|
||||||
g_test_add_func("/uuid/unparse_strdup", test_uuid_unparse_strdup);
|
g_test_add_func("/uuid/unparse_strdup", test_uuid_unparse_strdup);
|
||||||
|
@ -41,7 +41,12 @@ void qemu_uuid_generate(QemuUUID *uuid)
|
|||||||
int qemu_uuid_is_null(const QemuUUID *uu)
|
int qemu_uuid_is_null(const QemuUUID *uu)
|
||||||
{
|
{
|
||||||
static QemuUUID null_uuid;
|
static QemuUUID null_uuid;
|
||||||
return memcmp(uu, &null_uuid, sizeof(QemuUUID)) == 0;
|
return qemu_uuid_is_equal(uu, &null_uuid);
|
||||||
|
}
|
||||||
|
|
||||||
|
int qemu_uuid_is_equal(const QemuUUID *lhv, const QemuUUID *rhv)
|
||||||
|
{
|
||||||
|
return memcmp(lhv, rhv, sizeof(QemuUUID)) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void qemu_uuid_unparse(const QemuUUID *uuid, char *out)
|
void qemu_uuid_unparse(const QemuUUID *uuid, char *out)
|
||||||
|
Loading…
Reference in New Issue
Block a user