forked from goadesign/goa
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrace_test.go
95 lines (88 loc) · 1.99 KB
/
trace_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
83
84
85
86
87
88
89
90
91
92
93
94
95
package middleware
import (
"math"
"testing"
)
func TestNewTraceOptions(t *testing.T) {
// valid sampling percentage
{
cases := map[string]struct{ Rate int }{
"zero": {0},
"one": {1},
"fifty": {50},
"100": {100},
}
for k, c := range cases {
m := NewTraceOptions(SamplingPercent(c.Rate))
if m == nil {
t.Errorf("SamplingPercent(%s): return nil", k)
}
}
}
// valid adaptive sampler tests
{
m := NewTraceOptions(MaxSamplingRate(2))
if m == nil {
t.Error("MaxSamplingRate(2): return nil")
}
m = NewTraceOptions(MaxSamplingRate(5), SampleSize(100))
if m == nil {
t.Error("MaxSamplingRate(5), SampleSize(100): return nil")
}
}
// invalid sampling percentage
{
cases := map[string]struct{ SamplingPercentage int }{
"negative": {-1},
"one-o-one": {101},
"maxint": {math.MaxInt64},
}
for k, c := range cases {
func() {
defer func() {
r := recover()
if r != "sampling rate must be between 0 and 100" {
t.Errorf("SamplingPercent(%s): NewTraceOptions did *not* panic as expected: %v", k, r)
}
}()
NewTraceOptions(SamplingPercent(c.SamplingPercentage))
}()
}
}
// invalid max sampling rate
{
cases := map[string]struct{ MaxSamplingRate int }{
"negative": {-1},
"zero": {0},
}
for k, c := range cases {
func() {
defer func() {
r := recover()
if r != "max sampling rate must be greater than 0" {
t.Errorf("MaxSamplingRate(%s): Trace did *not* panic as expected: %v", k, r)
}
}()
NewTraceOptions(MaxSamplingRate(c.MaxSamplingRate))
}()
}
}
// invalid sample size
{
cases := map[string]struct{ SampleSize int }{
"negative": {-1},
"zero": {0},
}
for k, c := range cases {
func() {
defer func() {
r := recover()
if r != "sample size must be greater than 0" {
t.Errorf("SampleSize(%s): NewTraceOptions did *not* panic as expected: %v", k, r)
}
}()
NewTraceOptions(SampleSize(c.SampleSize))
}()
}
}
}