-
Notifications
You must be signed in to change notification settings - Fork 0
/
servertiming_test.go
82 lines (64 loc) · 1.75 KB
/
servertiming_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package servertiming
import (
"strconv"
"strings"
"testing"
"time"
"github.com/cheekybits/is"
)
func TestString(t *testing.T) {
is := is.New(t)
ti := New()
is.NotNil(ti)
ti.AddFlag("missedCache", "")
is.Equal(ti.String(), "missedCache")
ti = New()
ti.AddFlag("missedCache", "Cache missed")
is.Equal(ti.String(), "missedCache;desc=\"Cache missed\"")
ti = New()
ti.AddFlag("missedCache", "Cache missed: \"3\"")
is.Equal(ti.String(), `missedCache;desc="Cache missed: \"3\""`)
ti = New()
ti.AddFlag("missedCache", "")
ti.Add("cache", "Cache Read", 23200*time.Microsecond)
is.Equal(ti.String(), `missedCache, cache;desc="Cache Read";dur=23.20`)
ti = New()
ti.Start("db", "Database")
time.Sleep(10 * time.Millisecond)
ti.Stop("db")
s := ti.String()
parts := strings.Split(s, ";")
is.Equal(len(parts), 3)
is.Equal(parts[0], "db")
is.Equal(parts[1], `desc="Database"`)
tparts := strings.Split(parts[2], "=")
is.Equal(len(tparts), 2)
is.Equal(tparts[0], "dur")
d, err := strconv.ParseFloat(tparts[1], 64)
is.NoErr(err)
is.True(d > 10)
}
func TestPrefix(t *testing.T) {
is := is.New(t)
ti := New()
ti.EnablePrefix()
ti.AddFlag("a", "A")
ti.AddFlag("b", "B")
ti.AddFlag("c", "C")
ti.AddFlag("d", "D")
is.Equal(ti.String(), `0_a;desc="A", 1_b;desc="B", 2_c;desc="C", 3_d;desc="D"`)
ti = New()
ti.EnablePrefix()
ti.AddFlag("a", "A")
ti.AddFlag("b", "B")
ti.AddFlag("c", "C")
ti.AddFlag("d", "D")
ti.AddFlag("e", "E")
ti.AddFlag("f", "F")
ti.AddFlag("g", "G")
ti.AddFlag("h", "H")
ti.AddFlag("i", "I")
ti.AddFlag("j", "J")
ti.AddFlag("k", "K")
is.Equal(ti.String(), `00_a;desc="A", 01_b;desc="B", 02_c;desc="C", 03_d;desc="D", 04_e;desc="E", 05_f;desc="F", 06_g;desc="G", 07_h;desc="H", 08_i;desc="I", 09_j;desc="J", 10_k;desc="K"`)
}