tests: Add test for util.uuid (checks that the output format is correct)
authorKim Alvefur <zash@zash.se>
Sun, 10 Jan 2016 02:35:00 +0000 (03:35 +0100)
committerKim Alvefur <zash@zash.se>
Sun, 10 Jan 2016 02:35:00 +0000 (03:35 +0100)
tests/test.lua
tests/test_util_uuid.lua [new file with mode: 0644]

index 87467e53b90e7feee8dc1b2b937961f666f99335..4f6c53358c1fbe16921655fdf0c8ad64b9508d41 100644 (file)
@@ -22,6 +22,7 @@ function run_all_tests()
        dotest "util.sasl.scram"
        dotest "util.cache"
        dotest "util.throttle"
+       dotest "util.uuid"
 
        dosingletest("test_sasl.lua", "latin1toutf8");
        dosingletest("test_utf8.lua", "valid");
diff --git a/tests/test_util_uuid.lua b/tests/test_util_uuid.lua
new file mode 100644 (file)
index 0000000..d3f72bb
--- /dev/null
@@ -0,0 +1,24 @@
+-- This tests the format, not the randomness
+
+-- 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),
+}, "%-") .. "$";
+
+function generate(generate)
+       for i = 1, 100 do
+               assert_is(generate():match(pattern));
+       end
+end
+
+function seed(seed)
+       assert_equal(seed("random string here"), nil, "seed doesn't return anything");
+end
+