Skip to content

Commit 09eb136

Browse files
committed
2 parents 2aea5ad + 10e1ae5 commit 09eb136

File tree

2 files changed

+30
-41
lines changed

2 files changed

+30
-41
lines changed

node_decoder.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ package y3
33
import (
44
"errors"
55

6-
"github.com/yomorun/y3-codec-golang/pkg/encoding"
7-
86
"github.com/yomorun/y3-codec-golang/internal/mark"
7+
"github.com/yomorun/y3-codec-golang/pkg/encoding"
98
)
109

1110
func parsePayload(b []byte) (endPos int, ifNodePacket bool, np *NodePacket, pp *PrimitivePacket, err error) {
@@ -64,9 +63,7 @@ func DecodeNodePacket(buf []byte) (pct *NodePacket, endPos int, err error) {
6463

6564
// Parse value to Packet
6665
for {
67-
// fmt.Println("------>pos:", pos, ", endPos:", endPos, ", len(buf)", len(buf))
6866
if pos >= endPos || pos >= len(buf) {
69-
// fmt.Println("===GAME OVER===")
7067
break
7168
}
7269
_p, isNode, np, pp, err := parsePayload(buf[pos:endPos])

primitive_test.go

Lines changed: 29 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package y3
22

33
import (
44
"testing"
5+
6+
"github.com/stretchr/testify/assert"
57
)
68

79
// 每个Packet最小长度是2个bytes
@@ -18,6 +20,8 @@ func TestPacketWrongLength(t *testing.T) {
1820
buf := []byte{0x04, 0x00, 0x02, 0x01}
1921
expected := "malformed, Length can not smaller than 1"
2022
_, _, _, err := DecodePrimitivePacket(buf)
23+
assert.NoError(t, err)
24+
2125
if err != nil && err.Error() != expected {
2226
t.Errorf("err should %v, actual = %v", expected, err)
2327
}
@@ -27,51 +31,33 @@ func TestPacketWrongLength(t *testing.T) {
2731
func TestPacketRead(t *testing.T) {
2832
buf := []byte{0x04, 0x01, 0x7F}
2933
expectedTag := byte(0x04)
30-
var expectedLength int32 = 1
34+
var expectedLength uint32 = 1
3135
expectedValue := []byte{0x7F}
3236

3337
res, endPos, _, err := DecodePrimitivePacket(buf)
34-
if err != nil {
35-
t.Errorf("err should nil, actual = %v", err)
36-
}
37-
38-
if res.SeqID() != expectedTag {
39-
t.Errorf("res.Tag actual = %v, and Expected = %v", res.SeqID(), expectedTag)
40-
}
38+
assert.NoError(t, err)
4139

42-
if res.length != uint32(expectedLength) {
43-
t.Errorf("res.Length actual = %v, and Expected = %v", res.length, expectedLength)
44-
}
40+
assert.Equal(t, expectedTag, res.SeqID())
41+
assert.Equal(t, expectedLength, res.length)
4542

4643
if !_compareByteSlice(res.valBuf, expectedValue) {
4744
t.Errorf("res.raw actual = %v, and Expected = %v", res.valBuf, expectedValue)
4845
}
4946

50-
if endPos != 3 {
51-
t.Errorf("endPos actual = %v, and Expected = %v", endPos, 3)
52-
}
47+
assert.Equal(t, endPos, 3)
5348
}
5449

5550
// 测试读取 0x0A:2
5651
func TestParseInt32(t *testing.T) {
57-
// 原例子数据存在问题,修改如下:
58-
//buf := []byte{0x0A, 0x02, 0x01, 0x02}
5952
buf := []byte{0x0A, 0x02, 0x81, 0x7F}
60-
expected := int32(255)
53+
expectedValue := int32(255)
6154

6255
res, _, _, err := DecodePrimitivePacket(buf)
63-
if err != nil {
64-
t.Errorf("err should nil, actual = %v", err)
65-
}
66-
67-
val, err := res.ToInt32()
68-
if err != nil {
69-
t.Errorf("err should nil, actual = %v", err)
70-
}
56+
assert.NoError(t, err)
7157

72-
if val != expected {
73-
t.Errorf("value actual = %v, and Expected = %v", val, expected)
74-
}
58+
target, err := res.ToInt32()
59+
assert.NoError(t, err)
60+
assert.Equal(t, expectedValue, target)
7561
}
7662

7763
// 测试 0x0B:"C"
@@ -80,18 +66,24 @@ func TestParseString(t *testing.T) {
8066
expectedValue := "C"
8167

8268
res, _, _, err := DecodePrimitivePacket(buf)
83-
if err != nil {
84-
t.Errorf("err should nil, actual = %v", err)
85-
}
69+
assert.NoError(t, err)
8670

8771
target, err := res.ToUTF8String()
88-
if err != nil {
89-
t.Errorf("err should be nil, actual = %v", err)
90-
}
72+
assert.NoError(t, err)
73+
assert.Equal(t, expectedValue, target)
74+
}
9175

92-
if expectedValue != target {
93-
t.Errorf("Result actual = %v, and Expected = %v", t, expectedValue)
94-
}
76+
// 测试 0x0B:"C"
77+
func TestParseEmptyString(t *testing.T) {
78+
buf := []byte{0x0B, 0x00}
79+
expectedValue := ""
80+
81+
res, _, _, err := DecodePrimitivePacket(buf)
82+
assert.NoError(t, err)
83+
84+
target, err := res.ToUTF8String()
85+
assert.NoError(t, err)
86+
assert.Equal(t, expectedValue, target)
9587
}
9688

9789
// compares two slice, every element is equal

0 commit comments

Comments
 (0)