forked from aeron-io/simple-binary-encoding
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimple_test.go
More file actions
63 lines (53 loc) · 1.76 KB
/
Copy pathsimple_test.go
File metadata and controls
63 lines (53 loc) · 1.76 KB
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
package simple
import (
"bytes"
"testing"
)
func TestEncodeDecode(t *testing.T) {
m := NewSbeGoMarshaller()
in := Simple0{2863311530, 2863311530, 123456, 7890, 63, -8, -16, -32, -64, 3.14, -3.14e7, [6]byte{'a', 'b', 'c', 'd', 'e', 'f'}, 'A', [2]int32{254, 255}}
var sbuf = new(bytes.Buffer)
if err := in.Encode(m, sbuf, true); err != nil {
t.Log("Simple0 Encoding Error", err)
t.Fail()
}
t.Log(in, " -> ", sbuf.Bytes())
t.Log("Cap() = ", sbuf.Cap(), "Len() = ", sbuf.Len())
hdr := MessageHeader{in.SbeBlockLength(), in.SbeTemplateId(), in.SbeSchemaId(), in.SbeSchemaVersion()}
var mbuf = new(bytes.Buffer)
if err := hdr.Encode(m, mbuf); err != nil {
t.Log("MessageHeader Encoding Error", err)
t.Fail()
}
t.Log(hdr, " -> ", mbuf.Bytes())
t.Log("Cap() = ", mbuf.Cap(), "Len() = ", mbuf.Len())
// Create a new empty MessageHeader and Simple0
hdr = *new(MessageHeader)
var out Simple0 = *new(Simple0)
// Note generated standard header in use (as blocklength is uint8)
if err := hdr.Decode(m, mbuf, in.SbeSchemaVersion()); err != nil {
t.Log("MessageHeader Decoding Error", err)
t.Fail()
}
t.Log("MessageHeader Decodes as: ", m)
t.Log("Cap() = ", mbuf.Cap(), "Len() = ", mbuf.Len())
if err := out.Decode(m, sbuf, in.SbeSchemaVersion(), in.SbeBlockLength(), true); err != nil {
t.Log("Simple0 Decoding Error", err)
t.Fail()
}
t.Log("Simple0 decodes as: ", out)
t.Log("Cap() = ", sbuf.Cap(), "Len() = ", sbuf.Len())
if in != out {
t.Logf("in != out\n%v\n%v", in, out)
t.Fail()
}
// SinceVersion and Deprecated checkeds
if in.U64SinceVersion() != 1 {
t.Log("in.U64Deprecated() should be 1 and is", in.U64SinceVersion())
t.Fail()
}
if in.U64Deprecated() != 2 {
t.Log("in.U64Deprecated() should be 2 and is", in.U64Deprecated())
t.Fail()
}
}