+ pd_uuid_init_state(&s);
+ pd_uuid_make_v5(&s, &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)");
+
+ pd_uuid_copy(&uuid, ©);
+ ufmt(©, fmt);
+ is_string("fc1d1ec9-f731-5bfb-854e-e38a4dbd9dd3", fmt, "granicus.if.org (v5)");
+
+ ok(!pd_uuid_cmp(&uuid, ©), "uuid cmp copy");
+
+ strbytes("622e4fa57481e7ed5c9119e1ba69bf88255ca4a1", hash);
+ pd_set_uuid_hash(&uuid, hash, 5);
+ str_ok(&uuid, "622e4fa5-7481-57ed-9c91-19e1ba69bf88", "set from hash");
+
+ pd_uuid_make_v3(0, &uuid, &pd_uuid_ns_dns, "www.widgets.com", strlen("www.widgets.com"));
+ str_ok(&uuid, "3d813cbb-47fb-32ba-91df-831e1593ac29", "md5 widgets dns");
+ pd_uuid_make_v5(0, &uuid, &pd_uuid_ns_dns, "www.widgets.com", strlen("www.widgets.com"));
+ str_ok(&uuid, "21f7f8de-8051-5b89-8680-0195ef798b6a", "sha widgets dns");
+
+ pd_uuid_rng_get_bytes(hash, 5);
+
+ /* try to get two in very short sequence */
+ pd_uuid_init_state(&s);
+ pd_uuid_make_v1(&s, &uuid);
+ pd_uuid_make_v1(&s, ©);
+ ok(pd_uuid_cmp(&uuid, ©), "uuid v1 different");
+ ufmt(&uuid, fmt);
+ diag("v1a: %s", fmt);
+ ufmt(©, fmt);
+ diag("v1b: %s", fmt);
+
+ pd_uuid_init(&s, 0x1);
+ for (i=0;i<10;i++) {
+ pd_uuid_make_v1(&s, &idset[i]);
+ }
+ for (i=0;i<9;i++) {
+ ok(pd_uuid_cmp(&idset[i], &idset[i+1]), "id set %d != %d", i, i+1);
+ pd_uuid_make_v1(&s, &idset[i]);
+ }