diff options
author | Fraser Adams <fraser.adams@blueyonder.co.uk> | 2013-12-31 13:27:05 +0000 |
---|---|---|
committer | Fraser Adams <fraser.adams@blueyonder.co.uk> | 2013-12-31 13:27:05 +0000 |
commit | 32e1d73d605a7c4c3dc162b7c0d626b3dcce27ce (patch) | |
tree | dcc99dcd7029639465edd5644bc48882b15dd85f /tests/uuid | |
parent | 4bf76193c6f3f5d4c0a83ef2e715210b3d375175 (diff) |
implementation of libuuid
Diffstat (limited to 'tests/uuid')
-rw-r--r-- | tests/uuid/test.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/uuid/test.c b/tests/uuid/test.c new file mode 100644 index 00000000..ea3b116c --- /dev/null +++ b/tests/uuid/test.c @@ -0,0 +1,61 @@ + +#include <uuid/uuid.h> +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> + +int isUUID(char* p, int upper) { + char* p1 = p; + do { + if (!(isxdigit(*p1) || (*p1 == '-')) || (upper && islower(*p1)) || (!upper && isupper(*p1))) { + return 0; + } else { + } + } while (*++p1 != 0); + + if ((p[8] == '-') && (p[13] == '-') && (p[18] == '-') && (p[23] == '-')) { + return 1; + } else { + return 0; + } +} + +int main() { + uuid_t uuid; + uuid_t uuid1; + uuid_t uuid2; + uuid_t empty_uuid = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + uuid_generate(uuid); + + assert(uuid_is_null(uuid) == 0); + assert(uuid_type(uuid) == UUID_TYPE_DCE_RANDOM); + assert(uuid_variant(uuid) == UUID_VARIANT_DCE); + + char *generated = (char *)malloc(37*sizeof(char)); + uuid_unparse(uuid, generated); + assert(isUUID(generated, 0) == 1); // Check it's a valid lower case UUID string. + printf("\nuuid = %s\n", generated); + + assert(uuid_parse(generated, uuid1) == 0); // Check the generated UUID parses correctly into a compact UUID. + assert(uuid_compare(uuid1, uuid) == 0); // Compare the parsed UUID with the original. + + uuid_unparse_lower(uuid, generated); + assert(isUUID(generated, 0) == 1); // Check it's a valid lower case UUID string. + printf("uuid = %s\n", generated); + + uuid_unparse_upper(uuid, generated); + assert(isUUID(generated, 1) == 1); // Check it's a valid upper case UUID string. + printf("uuid = %s\n", generated); + + + uuid_copy(uuid2, uuid); + assert(uuid_compare(uuid2, uuid) == 0); + + uuid_clear(uuid); + assert(uuid_compare(empty_uuid, uuid) == 0); + + assert(uuid_is_null(uuid) == 1); + + return 0; +} + |