uuid_test.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package uuid_test
  2. import (
  3. "testing"
  4. "github.com/google/go-cmp/cmp"
  5. "v2ray.com/core/common"
  6. . "v2ray.com/core/common/uuid"
  7. )
  8. func TestParseBytes(t *testing.T) {
  9. str := "2418d087-648d-4990-86e8-19dca1d006d3"
  10. bytes := []byte{0x24, 0x18, 0xd0, 0x87, 0x64, 0x8d, 0x49, 0x90, 0x86, 0xe8, 0x19, 0xdc, 0xa1, 0xd0, 0x06, 0xd3}
  11. uuid, err := ParseBytes(bytes)
  12. common.Must(err)
  13. if diff := cmp.Diff(uuid.String(), str); diff != "" {
  14. t.Error(diff)
  15. }
  16. _, err = ParseBytes([]byte{1, 3, 2, 4})
  17. if err == nil {
  18. t.Fatal("Expect error but nil")
  19. }
  20. }
  21. func TestParseString(t *testing.T) {
  22. str := "2418d087-648d-4990-86e8-19dca1d006d3"
  23. expectedBytes := []byte{0x24, 0x18, 0xd0, 0x87, 0x64, 0x8d, 0x49, 0x90, 0x86, 0xe8, 0x19, 0xdc, 0xa1, 0xd0, 0x06, 0xd3}
  24. uuid, err := ParseString(str)
  25. common.Must(err)
  26. if r := cmp.Diff(expectedBytes, uuid.Bytes()); r != "" {
  27. t.Fatal(r)
  28. }
  29. _, err = ParseString("2418d087")
  30. if err == nil {
  31. t.Fatal("Expect error but nil")
  32. }
  33. _, err = ParseString("2418d087-648k-4990-86e8-19dca1d006d3")
  34. if err == nil {
  35. t.Fatal("Expect error but nil")
  36. }
  37. }
  38. func TestNewUUID(t *testing.T) {
  39. uuid := New()
  40. uuid2, err := ParseString(uuid.String())
  41. common.Must(err)
  42. if uuid.String() != uuid2.String() {
  43. t.Error("uuid string: ", uuid.String(), " != ", uuid2.String())
  44. }
  45. if r := cmp.Diff(uuid.Bytes(), uuid2.Bytes()); r != "" {
  46. t.Error(r)
  47. }
  48. }
  49. func TestRandom(t *testing.T) {
  50. uuid := New()
  51. uuid2 := New()
  52. if uuid.String() == uuid2.String() {
  53. t.Error("duplicated uuid")
  54. }
  55. }
  56. func TestEquals(t *testing.T) {
  57. var uuid *UUID
  58. var uuid2 *UUID
  59. if !uuid.Equals(uuid2) {
  60. t.Error("empty uuid should equal")
  61. }
  62. uuid3 := New()
  63. if uuid.Equals(&uuid3) {
  64. t.Error("nil uuid equals non-nil uuid")
  65. }
  66. }