/uuid_test.go
Go | 49 lines | 44 code | 5 blank | 0 comment | 14 complexity | 41e778b712a7a0811a1e21f70c0d0f91 MD5 | raw file
Possible License(s): 0BSD
1package uuid
2
3import (
4 "fmt"
5 "regexp"
6 "testing"
7)
8
9const hexOctet = "[A-F0-9]"
10
11var uuidV4RegexStr = fmt.Sprintf("^%s{8}-%s{4}-4%s{3}-[89AB]%s{3}-%s{12}$",
12 hexOctet, hexOctet, hexOctet, hexOctet, hexOctet)
13var uuidVersion4Regex = regexp.MustCompile(uuidV4RegexStr)
14
15func TestGenerateV4(t *testing.T) {
16 fmt.Println("[+] testing GenerateV4()")
17 var u []byte
18 var err error
19 u, err = GenerateV4()
20 if err != nil {
21 fmt.Printf("[!] %s\n", err.Error())
22 t.FailNow()
23 } else if len(u) != 36 {
24 fmt.Printf("[!] UUID length mismatch: %s\n", u)
25 t.FailNow()
26 } else if !uuidVersion4Regex.Match(u) {
27 fmt.Printf("[!] invalid UUID: %s\n", u)
28 t.FailNow()
29 }
30 fmt.Printf("\t[*] generate UUID: %s\n", string(u))
31}
32
33func TestGenerateV4String(t *testing.T) {
34 fmt.Println("[+] testing GenerateV4String()")
35 var u string
36 var err error
37 u, err = GenerateV4String()
38 if err != nil {
39 fmt.Printf("[!] %s\n", err.Error())
40 t.FailNow()
41 } else if len(u) != 36 {
42 fmt.Printf("[!] UUID length mismatch: %s\n", u)
43 t.FailNow()
44 } else if !uuidVersion4Regex.MatchString(u) {
45 fmt.Printf("[!] invalid UUID: %s\n", u)
46 t.FailNow()
47 }
48 fmt.Printf("\t[*] generate UUID: %s\n", u)
49}