Add uuid methods to create canonical representation
To enable UUIDs to be printed in canonical form, this commit adds
functions to generate a canonical string from UUID octets in either
standard octet order or GUID octet order.
Signed-off-by: Julian Hall <julian.hall@arm.com>
Change-Id: I43fb5cf82c11cb092ce8497568d6b84cdffaae9b
diff --git a/components/common/uuid/test/uuid_tests.cpp b/components/common/uuid/test/uuid_tests.cpp
index 9a278a6..a568a88 100644
--- a/components/common/uuid/test/uuid_tests.cpp
+++ b/components/common/uuid/test/uuid_tests.cpp
@@ -156,4 +156,26 @@
uuid_guid_octets_from_canonical(&uuid, "00000000-0000-0000-0000-000000000003");
CHECK_FALSE(uuid_is_nil(uuid.octets));
+}
+
+TEST(UuidTests, roundTrip) {
+
+ /* A valid UUID using lower-case */
+ const char *uuid_text = "d9df52d5-16a2-4bb2-9aa4-d26d3b84e8c0";
+ CHECK_TRUE(uuid_is_valid(uuid_text));
+
+ struct uuid_octets uuid;
+ struct uuid_canonical canonical_uuid;
+
+ /* Round trip using standard octet order */
+ uuid_octets_from_canonical(&uuid, uuid_text);
+ uuid_canonical_from_octets(&canonical_uuid, &uuid);
+
+ MEMCMP_EQUAL(uuid_text, canonical_uuid.characters, sizeof(canonical_uuid.characters));
+
+ /* Round trip using GUID octet order */
+ uuid_guid_octets_from_canonical(&uuid, uuid_text);
+ uuid_canonical_from_guid_octets(&canonical_uuid, &uuid);
+
+ MEMCMP_EQUAL(uuid_text, canonical_uuid.characters, sizeof(canonical_uuid.characters));
}
\ No newline at end of file