]> pd.if.org Git - uuid/blob - t/uuidgen.c
Added namespace uuids and test program
[uuid] / t / uuidgen.c
1 /*
2  * test program for uuid library
3  *
4  * written by nathan wagner and placed in the public domain
5  */
6 #include <stdio.h>
7 #include <string.h>
8 #include <stdlib.h>
9 #include <time.h>
10
11 #include "pduuid.h"
12 #include "ctap.h"
13
14 void ufmt(pd_uuid_t *uuid, char *s) {
15         int i;
16         for (i=0;i<4;i++) {
17                 s += sprintf(s, "%02x", uuid->data[i]);
18         }
19         s += sprintf(s, "-");
20         for (;i<6;i++) {
21                 s += sprintf(s, "%02x", uuid->data[i]);
22         }
23         s += sprintf(s, "-");
24         for (;i<8;i++) {
25                 s += sprintf(s, "%02x", uuid->data[i]);
26         }
27         s += sprintf(s, "-");
28         for (;i<10;i++) {
29                 s += sprintf(s, "%02x", uuid->data[i]);
30         }
31         s += sprintf(s, "-");
32         for (;i<16;i++) {
33                 s += sprintf(s, "%02x", uuid->data[i]);
34         }
35 }
36
37 int str_ok(pd_uuid_t *uuid, char *s, char *name) {
38         char fmt[37];
39         ufmt(uuid, fmt);
40         is_string(s, fmt, name);
41         return 0;
42 }
43
44 int main(int ac, char *av[]) {
45         pd_uuid_t uuid;
46         char fmt[37];
47
48         char *url = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
49         char *dns = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
50         char *oid = "6ba7b812-9dad-11d1-80b4-00c04fd430c8";
51         char *x500 = "6ba7b814-9dad-11d1-80b4-00c04fd430c8";
52
53 #ifdef WIN32
54         srand(time(0));
55 #else
56         srandom(time(0));
57 #endif
58
59         plan(7);
60
61         pd_uuid_make_v1(0, &uuid);
62         ufmt(&uuid, fmt);
63         diag("v1: %s", fmt);
64
65         pd_uuid_make_v4(0, &uuid);
66         ufmt(&uuid, fmt);
67         diag("v4: %s", fmt);
68
69         pd_uuid_set_string(&uuid, "6ba7b810-9dad-11d1-80b4-00c04fd430c8");
70         ufmt(&uuid, fmt);
71         is_string("6ba7b810-9dad-11d1-80b4-00c04fd430c8", fmt, "t/f string");
72
73         ufmt(&pd_uuid_ns_x500, fmt);
74         is_string(x500, fmt, "pd_uuid_ns_x500()");
75
76         ufmt(&pd_uuid_ns_oid, fmt);
77         is_string(oid, fmt, "pd_uuid_ns_oid()");
78
79         ufmt(&pd_uuid_ns_url, fmt);
80         is_string(url, fmt, "pd_uuid_ns_url()");
81
82         ufmt(&pd_uuid_ns_dns, fmt);
83         is_string(dns, fmt, "pd_uuid_ns_dns()");
84
85         pd_uuid_make_v3(0, &uuid, &pd_uuid_ns_dns, "granicus.if.org", strlen("granicus.if.org"));
86         ufmt(&uuid, fmt);
87         is_string("e6e8e9cb-78bd-33b3-b8ae-d442456e8169", fmt, "granicus.if.org (v3)");
88
89         pd_uuid_make_v5(0, &uuid, &pd_uuid_ns_dns, "granicus.if.org", strlen("granicus.if.org"));
90         ufmt(&uuid, fmt);
91         is_string("fc1d1ec9-f731-5bfb-854e-e38a4dbd9dd3", fmt, "granicus.if.org (v5)");
92
93         return 0;
94 }