forked from criteo/haproxy-spoe-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathframes_test.go
75 lines (60 loc) · 1.37 KB
/
frames_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
package spoe
import (
"github.com/stretchr/testify/require"
)
func notifyFrame(t require.TestingT) Frame {
b := make([]byte, maxFrameSize)
f := Frame{
ftype: frameTypeHaproxyNotify,
streamID: 1,
frameID: 2,
data: b,
}
m := 0
n, err := encodeString(f.data[m:], "message-1")
m += n
f.data[m] = 2
m++
n, err = encodeKV(f.data[m:], "key-1", "value1")
require.NoError(t, err)
m += n
n, err = encodeKV(f.data[m:], "key-2", 360)
require.NoError(t, err)
m += n
n, err = encodeString(f.data[m:], "message-2")
m += n
f.data[m] = 2
m++
n, err = encodeKV(f.data[m:], "key2-1", "value21")
require.NoError(t, err)
m += n
n, err = encodeKV(f.data[m:], "key2-2", 362)
require.NoError(t, err)
m += n
f.data = f.data[:m]
return f
}
func helloFrame(t require.TestingT) Frame {
f := Frame{
ftype: frameTypeHaproxyHello,
flags: frameFlagFin,
streamID: 1,
frameID: 1,
data: make([]byte, maxFrameSize),
}
m := 0
n, err := encodeKV(f.data[m:], "capabilities", "pipelining")
require.NoError(t, err)
m += n
n, err = encodeKV(f.data[m:], "engine-id", "0082BA75-E79D-4766-86D3-1AE84AB4A366")
require.NoError(t, err)
m += n
n, err = encodeKV(f.data[m:], "max-frame-size", uint(16380))
require.NoError(t, err)
m += n
n, err = encodeKV(f.data[m:], "supported-versions", "2.0")
require.NoError(t, err)
m += n
f.data = f.data[:m]
return f
}