Skip to content

Commit b31e9e0

Browse files
committed
resolve #60, #61, #62
1 parent 2c65406 commit b31e9e0

File tree

4 files changed

+42
-54
lines changed

4 files changed

+42
-54
lines changed

Makefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ vet:
1414
lint:
1515
$(GOLINT) $(GOFILES)
1616

17-
test:
17+
v1test:
1818
$(GO) test -v ./...
1919

2020
cover:
2121
$(GO) test -coverprofile=prof.out && $(GO) tool cover -html=prof.out && rm prof.out
2222

23-
v2test:
24-
$(GO) test -v v2_test.go v2.go
23+
test:
24+
$(GO) test -v v2_test.go v2.go

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ See [YoMo Codec SPEC](https://github.com/yomorun/yomo-codec)
1717

1818
## Test
1919

20-
`make v2test`
20+
`make test`
2121

2222
## Use
2323

v2.go

+20-33
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ func (p *Packet) setLengthBuffer() error {
3838
return nil
3939
}
4040

41-
// PutUInt32 set UInt32 value
42-
func (p *Packet) PutUInt32(v uint32) error {
41+
// SetUInt32 set UInt32 value
42+
func (p *Packet) SetUInt32(v uint32) error {
4343
size := encoding.SizeOfPVarUInt32(v)
4444
codec := encoding.VarCodec{Size: size}
4545
p.valbuf = make([]byte, size)
@@ -48,13 +48,11 @@ func (p *Packet) PutUInt32(v uint32) error {
4848
if err != nil {
4949
return err
5050
}
51-
// set packet length
52-
p.length = size
5351
return nil
5452
}
5553

56-
// PutInt32 set Int32 value
57-
func (p *Packet) PutInt32(v int) error {
54+
// SetInt32 set Int32 value
55+
func (p *Packet) SetInt32(v int) error {
5856
size := encoding.SizeOfPVarInt32(int32(v))
5957
codec := encoding.VarCodec{Size: size}
6058
p.valbuf = make([]byte, size)
@@ -63,13 +61,11 @@ func (p *Packet) PutInt32(v int) error {
6361
if err != nil {
6462
return err
6563
}
66-
// set packet length
67-
p.length = size
6864
return nil
6965
}
7066

71-
// PutUInt64 set UInt32 value
72-
func (p *Packet) PutUInt64(v uint64) error {
67+
// SetUInt64 set UInt32 value
68+
func (p *Packet) SetUInt64(v uint64) error {
7369
size := encoding.SizeOfPVarUInt64(v)
7470
codec := encoding.VarCodec{Size: size}
7571
p.valbuf = make([]byte, size)
@@ -78,13 +74,11 @@ func (p *Packet) PutUInt64(v uint64) error {
7874
if err != nil {
7975
return err
8076
}
81-
// set packet length
82-
p.length = size
8377
return nil
8478
}
8579

86-
// PutInt64 set Int32 value
87-
func (p *Packet) PutInt64(v int64) error {
80+
// SetInt64 set Int32 value
81+
func (p *Packet) SetInt64(v int64) error {
8882
size := encoding.SizeOfPVarInt64(int64(v))
8983
codec := encoding.VarCodec{Size: size}
9084
p.valbuf = make([]byte, size)
@@ -93,13 +87,11 @@ func (p *Packet) PutInt64(v int64) error {
9387
if err != nil {
9488
return err
9589
}
96-
// set packet length
97-
p.length = size
9890
return nil
9991
}
10092

101-
// PutFloat32 set float32 value
102-
func (p *Packet) PutFloat32(v float32) error {
93+
// SetFloat32 set float32 value
94+
func (p *Packet) SetFloat32(v float32) error {
10395
size := encoding.SizeOfVarFloat32(v)
10496
codec := encoding.VarCodec{Size: size}
10597
p.valbuf = make([]byte, size)
@@ -108,13 +100,11 @@ func (p *Packet) PutFloat32(v float32) error {
108100
if err != nil {
109101
return err
110102
}
111-
// set packet length
112-
p.length = size
113103
return nil
114104
}
115105

116-
// PutFloat64 set float64 value
117-
func (p *Packet) PutFloat64(v float64) error {
106+
// SetFloat64 set float64 value
107+
func (p *Packet) SetFloat64(v float64) error {
118108
size := encoding.SizeOfVarFloat64(v)
119109
codec := encoding.VarCodec{Size: size}
120110
p.valbuf = make([]byte, size)
@@ -123,30 +113,26 @@ func (p *Packet) PutFloat64(v float64) error {
123113
if err != nil {
124114
return err
125115
}
126-
// set packet length
127-
p.length = size
128116
return nil
129117
}
130118

131-
// PutBool set boolean value
132-
func (p *Packet) PutBool(v bool) error {
119+
// SetBool set boolean value
120+
func (p *Packet) SetBool(v bool) error {
133121
var val uint64 = 0
134122
if v {
135123
val = 1
136124
}
137-
return p.PutUInt64(val)
125+
return p.SetUInt64(val)
138126
}
139127

140-
// PutUTF8String set string value
141-
func (p *Packet) PutUTF8String(v string) {
128+
// SetUTF8String set string value
129+
func (p *Packet) SetUTF8String(v string) {
142130
p.valbuf = []byte(v)
143-
p.length = len(p.valbuf)
144131
}
145132

146-
// PutBytes set bytes value
133+
// PutBytes append bytes value
147134
func (p *Packet) PutBytes(v []byte) {
148-
p.valbuf = v
149-
p.length = len(p.valbuf)
135+
p.valbuf = append(p.valbuf, v...)
150136
}
151137

152138
// AddNode add a child Packet
@@ -166,6 +152,7 @@ func (p *Packet) AddNode(child *Packet) (*Packet, error) {
166152

167153
// Encode return whole bytes of this packet
168154
func (p *Packet) Encode() ([]byte, error) {
155+
p.length = len(p.valbuf)
169156
err := p.setLengthBuffer()
170157
if err != nil {
171158
return nil, err

v2_test.go

+18-17
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func testV2Tags(t *testing.T, id int, expected []byte) {
1818
if err != nil {
1919
t.Errorf("TestV2Tag err=%v", err)
2020
}
21-
p.PutInt32(0)
21+
p.SetInt32(0)
2222
expected = append(expected, []byte{0x01, 0x00}...)
2323
compareBytes(t, p, expected)
2424
}
@@ -60,90 +60,92 @@ func TestV2EncodeFloat64(t *testing.T) {
6060

6161
func TestV2EncodeString(t *testing.T) {
6262
p, _ := NewPacket(0x01)
63-
p.PutUTF8String("C")
63+
p.SetUTF8String("C")
6464
compareBytes(t, p, []byte{0x01, 0x01, 0x43})
65-
p.PutUTF8String("CC")
65+
p.SetUTF8String("CC")
6666
compareBytes(t, p, []byte{0x01, 0x02, 0x43, 0x43})
67-
p.PutUTF8String("Yona")
67+
p.SetUTF8String("Yona")
6868
compareBytes(t, p, []byte{0x01, 0x04, 0x59, 0x6F, 0x6E, 0x61})
69-
p.PutUTF8String("https://yomo.run")
69+
p.SetUTF8String("https://yomo.run")
7070
compareBytes(t, p, []byte{0x01, 0x10, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3A, 0x2F, 0x2F, 0x79, 0x6F, 0x6D, 0x6F, 0x2E, 0x72, 0x75, 0x6E})
7171
}
7272

7373
func TestV2EncodeBytes(t *testing.T) {
7474
p, _ := NewPacket(0x01)
7575
p.PutBytes([]byte{0x03, 0x06, 0x09, 0x0C, 0x0F})
7676
compareBytes(t, p, []byte{0x01, 0x05, 0x03, 0x06, 0x09, 0x0C, 0x0F})
77+
p.PutBytes([]byte{0x06, 0x01, 0x01})
78+
compareBytes(t, p, []byte{0x01, 0x08, 0x03, 0x06, 0x09, 0x0C, 0x0F, 0x06, 0x01, 0x01})
7779
}
7880

7981
func TestV2EncodeBool(t *testing.T) {
8082
p, _ := NewPacket(0x01)
81-
p.PutBool(true)
83+
p.SetBool(true)
8284
compareBytes(t, p, []byte{0x01, 0x01, 0x01})
83-
p.PutBool(false)
85+
p.SetBool(false)
8486
compareBytes(t, p, []byte{0x01, 0x01, 0x00})
8587
}
8688

8789
func TestV2AddNode(t *testing.T) {
8890
parent, _ := NewPacket(0x01)
8991

9092
child1, _ := NewPacket(0x02)
91-
child1.PutUInt32(3)
93+
child1.SetUInt32(3)
9294

9395
parent.AddNode(child1)
9496
compareBytes(t, parent, []byte{0x01, 0x03, 0x02, 0x01, 0x03})
9597

9698
child2, _ := NewPacket(0x03)
97-
child2.PutFloat64(0.01171875)
99+
child2.SetFloat64(0.01171875)
98100

99101
parent.AddNode(child2)
100102
compareBytes(t, parent, []byte{0x01, 0x07, 0x02, 0x01, 0x03, 0x03, 0x02, 0x3F, 0x88})
101103

102104
child3, _ := NewPacket(0x04)
103-
child3.PutFloat32(68.123)
105+
child3.SetFloat32(68.123)
104106

105107
parent.AddNode(child3)
106108
compareBytes(t, parent, []byte{0x01, 0x0D, 0x02, 0x01, 0x03, 0x03, 0x02, 0x3F, 0x88, 0x04, 0x04, 0x42, 0x88, 0x3E, 0xFA})
107109
}
108110

109111
func testV2EncodeUInt32(t *testing.T, tag int, val uint32, expected []byte) {
110112
p, _ := NewPacket(tag)
111-
p.PutUInt32(val)
113+
p.SetUInt32(val)
112114

113115
compareBytes(t, p, expected)
114116
}
115117

116118
func testV2EncodeInt32(t *testing.T, tag int, val int, expected []byte) {
117119
p, _ := NewPacket(tag)
118-
p.PutInt32(val)
120+
p.SetInt32(val)
119121

120122
compareBytes(t, p, expected)
121123
}
122124

123125
func testV2EncodeUInt64(t *testing.T, tag int, val uint64, expected []byte) {
124126
p, _ := NewPacket(tag)
125-
p.PutUInt64(val)
127+
p.SetUInt64(val)
126128

127129
compareBytes(t, p, expected)
128130
}
129131

130132
func testV2EncodeInt64(t *testing.T, tag int, val int64, expected []byte) {
131133
p, _ := NewPacket(tag)
132-
p.PutInt64(val)
134+
p.SetInt64(val)
133135

134136
compareBytes(t, p, expected)
135137
}
136138

137139
func testV2EncodeFloat32(t *testing.T, tag int, val float32, expected []byte) {
138140
p, _ := NewPacket(tag)
139-
p.PutFloat32(val)
141+
p.SetFloat32(val)
140142

141143
compareBytes(t, p, expected)
142144
}
143145

144146
func testV2EncodeFloat64(t *testing.T, tag int, val float64, expected []byte) {
145147
p, _ := NewPacket(tag)
146-
p.PutFloat64(val)
148+
p.SetFloat64(val)
147149

148150
compareBytes(t, p, expected)
149151
}
@@ -155,7 +157,6 @@ func compareBytes(t *testing.T, p *Packet, expected []byte) {
155157
}
156158
for i, p := range result {
157159
if p != expected[i] {
158-
// t.Errorf("i=%v, expected=%#x, actual=%#x", i, expected[i], result[i])
159160
t.Errorf("\nexpected:[% X]\n actual:[% X]\n", expected, result)
160161
break
161162
}

0 commit comments

Comments
 (0)