mirror of https://github.com/bjc/prosody
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
617 B
25 lines
617 B
-- This tests the format, not the randomness
|
|
|
|
local uuid = require "util.uuid";
|
|
|
|
describe("util.uuid", function()
|
|
describe("#generate()", function()
|
|
it("should work follow the UUID pattern", function()
|
|
-- https://tools.ietf.org/html/rfc4122#section-4.4
|
|
|
|
local pattern = "^" .. table.concat({
|
|
string.rep("%x", 8),
|
|
string.rep("%x", 4),
|
|
"4" .. -- version
|
|
string.rep("%x", 3),
|
|
"[89ab]" .. -- reserved bits of 1 and 0
|
|
string.rep("%x", 3),
|
|
string.rep("%x", 12),
|
|
}, "%-") .. "$";
|
|
|
|
for _ = 1, 100 do
|
|
assert.is_string(uuid.generate():match(pattern));
|
|
end
|
|
end);
|
|
end);
|
|
end);
|
|
|