X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=t%2Fuuidgen.c;fp=t%2Fuuidgen.c;h=6fb3c56a40e44967a56f1c40643dc7ea81d87d87;hb=5ee112d5a01767b1bcceb12fa5c057b3dcf40890;hp=0000000000000000000000000000000000000000;hpb=d6b19a7a5fef18452f73d7a0fbaa3c7476da050e;p=uuid diff --git a/t/uuidgen.c b/t/uuidgen.c new file mode 100644 index 0000000..6fb3c56 --- /dev/null +++ b/t/uuidgen.c @@ -0,0 +1,94 @@ +/* + * test program for uuid library + * + * written by nathan wagner and placed in the public domain + */ +#include +#include +#include +#include + +#include "pduuid.h" +#include "ctap.h" + +void ufmt(pd_uuid_t *uuid, char *s) { + int i; + for (i=0;i<4;i++) { + s += sprintf(s, "%02x", uuid->data[i]); + } + s += sprintf(s, "-"); + for (;i<6;i++) { + s += sprintf(s, "%02x", uuid->data[i]); + } + s += sprintf(s, "-"); + for (;i<8;i++) { + s += sprintf(s, "%02x", uuid->data[i]); + } + s += sprintf(s, "-"); + for (;i<10;i++) { + s += sprintf(s, "%02x", uuid->data[i]); + } + s += sprintf(s, "-"); + for (;i<16;i++) { + s += sprintf(s, "%02x", uuid->data[i]); + } +} + +int str_ok(pd_uuid_t *uuid, char *s, char *name) { + char fmt[37]; + ufmt(uuid, fmt); + is_string(s, fmt, name); + return 0; +} + +int main(int ac, char *av[]) { + pd_uuid_t uuid; + char fmt[37]; + + char *url = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; + char *dns = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; + char *oid = "6ba7b812-9dad-11d1-80b4-00c04fd430c8"; + char *x500 = "6ba7b814-9dad-11d1-80b4-00c04fd430c8"; + +#ifdef WIN32 + srand(time(0)); +#else + srandom(time(0)); +#endif + + plan(7); + + pd_uuid_make_v1(0, &uuid); + ufmt(&uuid, fmt); + diag("v1: %s", fmt); + + pd_uuid_make_v4(0, &uuid); + ufmt(&uuid, fmt); + diag("v4: %s", fmt); + + pd_uuid_set_string(&uuid, "6ba7b810-9dad-11d1-80b4-00c04fd430c8"); + ufmt(&uuid, fmt); + is_string("6ba7b810-9dad-11d1-80b4-00c04fd430c8", fmt, "t/f string"); + + ufmt(&pd_uuid_ns_x500, fmt); + is_string(x500, fmt, "pd_uuid_ns_x500()"); + + ufmt(&pd_uuid_ns_oid, fmt); + is_string(oid, fmt, "pd_uuid_ns_oid()"); + + ufmt(&pd_uuid_ns_url, fmt); + is_string(url, fmt, "pd_uuid_ns_url()"); + + ufmt(&pd_uuid_ns_dns, fmt); + is_string(dns, fmt, "pd_uuid_ns_dns()"); + + pd_uuid_make_v3(0, &uuid, &pd_uuid_ns_dns, "granicus.if.org", strlen("granicus.if.org")); + ufmt(&uuid, fmt); + is_string("e6e8e9cb-78bd-33b3-b8ae-d442456e8169", fmt, "granicus.if.org (v3)"); + + pd_uuid_make_v5(0, &uuid, &pd_uuid_ns_dns, "granicus.if.org", strlen("granicus.if.org")); + ufmt(&uuid, fmt); + is_string("fc1d1ec9-f731-5bfb-854e-e38a4dbd9dd3", fmt, "granicus.if.org (v5)"); + + return 0; +}