aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorFeoramund <161657516+Feoramund@users.noreply.github.com>2024-06-21 12:04:45 -0400
committerFeoramund <161657516+Feoramund@users.noreply.github.com>2024-06-22 18:21:31 -0400
commit4cfbd83b10ff17b6c7ca4b01dac249bfbea0da84 (patch)
treef18dc3b825e1317ef4dcdfd5c6e2a190b2dda589 /tests
parentfee81985b4b7ade3cddc7038360efcd32555d879 (diff)
Add version 7 UUID generation
Diffstat (limited to 'tests')
-rw-r--r--tests/core/encoding/uuid/test_core_uuid.odin32
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/core/encoding/uuid/test_core_uuid.odin b/tests/core/encoding/uuid/test_core_uuid.odin
index 717c5599d..b5e8e90cc 100644
--- a/tests/core/encoding/uuid/test_core_uuid.odin
+++ b/tests/core/encoding/uuid/test_core_uuid.odin
@@ -1,13 +1,16 @@
package test_core_uuid
-import "core:testing"
import "core:encoding/uuid"
+import "core:log"
+import "core:testing"
+import "core:time"
@(test)
test_version_and_variant :: proc(t: ^testing.T) {
v3 := uuid.generate_v3(uuid.Namespace_DNS, "")
v4 := uuid.generate_v4()
v5 := uuid.generate_v5(uuid.Namespace_DNS, "")
+ v7 := uuid.generate_v7()
testing.expect_value(t, uuid.version(v3), 3)
testing.expect_value(t, uuid.variant(v3), uuid.Variant_Type.RFC_4122)
@@ -15,6 +18,8 @@ test_version_and_variant :: proc(t: ^testing.T) {
testing.expect_value(t, uuid.variant(v4), uuid.Variant_Type.RFC_4122)
testing.expect_value(t, uuid.version(v5), 5)
testing.expect_value(t, uuid.variant(v5), uuid.Variant_Type.RFC_4122)
+ testing.expect_value(t, uuid.version(v7), 7)
+ testing.expect_value(t, uuid.variant(v7), uuid.Variant_Type.RFC_4122)
}
@(test)
@@ -49,6 +54,31 @@ test_namespaced_uuids :: proc(t: ^testing.T) {
}
@(test)
+test_v7 :: proc(t: ^testing.T) {
+ v7_a := uuid.generate_v7()
+ time.sleep(10 * time.Millisecond)
+ v7_b := uuid.generate_v7()
+ time.sleep(10 * time.Millisecond)
+ v7_c := uuid.generate_v7()
+
+ time_bits_a := uuid.time_v7(v7_a)
+ time_bits_b := uuid.time_v7(v7_b)
+ time_bits_c := uuid.time_v7(v7_c)
+
+ log.debugf("A: %02x, %i", v7_a, time_bits_a)
+ log.debugf("B: %02x, %i", v7_b, time_bits_b)
+ log.debugf("C: %02x, %i", v7_c, time_bits_c)
+
+ testing.expect(t, time_bits_b > time_bits_a, "The time bits on the later-generated v7 UUID are lesser than the earlier UUID.")
+ testing.expect(t, time_bits_c > time_bits_b, "The time bits on the later-generated v7 UUID are lesser than the earlier UUID.")
+ testing.expect(t, time_bits_c > time_bits_a, "The time bits on the later-generated v7 UUID are lesser than the earlier UUID.")
+
+ v7_with_counter := uuid.generate_v7_counter(0x555)
+ log.debugf("D: %02x", v7_with_counter)
+ testing.expect_value(t, uuid.counter_v7(v7_with_counter), 0x555)
+}
+
+@(test)
test_writing :: proc(t: ^testing.T) {
id: uuid.Identifier