Software /
code /
prosody
File
spec/util_uuid_spec.lua @ 13752:49bbdc22846d 13.0
certmanager: Add more debug logging around cert indexing
Currently it's not obvious which directories have been indexed (especially
when the resulting index is empty), or why certain files have been skipped.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Mon, 24 Feb 2025 17:48:58 +0000 |
parent | 13317:e6a5f196fc1f |
line wrap: on
line source
-- 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://www.rfc-editor.org/rfc/rfc4122.html#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 assert.truthy(uuid.generate() ~= uuid.generate(), "does not generate the same UUIDv4 twice") end); end); describe("#v7", function() it("should also follow the UUID pattern", function() local pattern = "^" .. table.concat({ string.rep("%x", 8), string.rep("%x", 4), "7" .. -- version string.rep("%x", 3), "[89ab]" .. -- reserved bits of 1 and 0 string.rep("%x", 3), string.rep("%x", 12), }, "%-") .. "$"; local one = uuid.v7(); -- one before the loop to ensure some time passes for _ = 1, 100 do assert.is_string(uuid.v7():match(pattern)); end -- one after the loop when some time should have passed assert.truthy(one < uuid.v7(), "should be ordererd") end); end); end);