PageRenderTime 32ms CodeModel.GetById 22ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/uuid_test.go

https://bitbucket.org/kisom/uuid
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}