diff options
| author | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2024-06-21 17:55:27 -0400 |
|---|---|---|
| committer | Feoramund <161657516+Feoramund@users.noreply.github.com> | 2024-06-22 18:21:31 -0400 |
| commit | 525bfca4ef53916ca99f0c5cd4a1371ba6756c95 (patch) | |
| tree | 617075801b40e891eb95076ea7fcedd5de31abe4 /tests/core/encoding | |
| parent | 4cfbd83b10ff17b6c7ca4b01dac249bfbea0da84 (diff) | |
Add version 1 UUID generation
Diffstat (limited to 'tests/core/encoding')
| -rw-r--r-- | tests/core/encoding/uuid/test_core_uuid.odin | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/core/encoding/uuid/test_core_uuid.odin b/tests/core/encoding/uuid/test_core_uuid.odin index b5e8e90cc..f934d13dc 100644 --- a/tests/core/encoding/uuid/test_core_uuid.odin +++ b/tests/core/encoding/uuid/test_core_uuid.odin @@ -7,11 +7,14 @@ import "core:time" @(test) test_version_and_variant :: proc(t: ^testing.T) { + v1 := uuid.generate_v1(0) 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(v1), 1) + testing.expect_value(t, uuid.variant(v1), uuid.Variant_Type.RFC_4122) testing.expect_value(t, uuid.version(v3), 3) testing.expect_value(t, uuid.variant(v3), uuid.Variant_Type.RFC_4122) testing.expect_value(t, uuid.version(v4), 4) @@ -54,6 +57,34 @@ test_namespaced_uuids :: proc(t: ^testing.T) { } @(test) +test_v1 :: proc(t: ^testing.T) { + CLOCK :: 0x3A1A + v1_a := uuid.generate_v1(CLOCK) + time.sleep(10 * time.Millisecond) + v1_b := uuid.generate_v1(CLOCK) + time.sleep(10 * time.Millisecond) + v1_c := uuid.generate_v1(CLOCK) + + testing.expect_value(t, uuid.clock_seq(v1_a), CLOCK) + + time_bits_a := uuid.time_v1(v1_a) + time_bits_b := uuid.time_v1(v1_b) + time_bits_c := uuid.time_v1(v1_c) + + time_a := time.Time { _nsec = cast(i64)((time_bits_a - uuid.HNS_INTERVALS_BETWEEN_GREG_AND_UNIX) * 100) } + time_b := time.Time { _nsec = cast(i64)((time_bits_b - uuid.HNS_INTERVALS_BETWEEN_GREG_AND_UNIX) * 100) } + time_c := time.Time { _nsec = cast(i64)((time_bits_c - uuid.HNS_INTERVALS_BETWEEN_GREG_AND_UNIX) * 100) } + + log.debugf("A: %02x, %i, %v", v1_a, time_bits_a, time_a) + log.debugf("B: %02x, %i, %v", v1_b, time_bits_b, time_b) + log.debugf("C: %02x, %i, %v", v1_c, time_bits_c, time_c) + + testing.expect(t, time_bits_b > time_bits_a, "The time bits on the later-generated v1 UUID are lesser than the earlier UUID.") + testing.expect(t, time_bits_c > time_bits_b, "The time bits on the later-generated v1 UUID are lesser than the earlier UUID.") + testing.expect(t, time_bits_c > time_bits_a, "The time bits on the later-generated v1 UUID are lesser than the earlier UUID.") +} + +@(test) test_v7 :: proc(t: ^testing.T) { v7_a := uuid.generate_v7() time.sleep(10 * time.Millisecond) |