Skip to content

Commit 622df44

Browse files
committed
去除assert依赖
1 parent 64586b7 commit 622df44

File tree

6 files changed

+229
-100
lines changed

6 files changed

+229
-100
lines changed

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
module github.com/antlabs/httparser
22

33
go 1.14
4-
5-
require github.com/stretchr/testify v1.7.1

go.sum

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +0,0 @@
1-
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2-
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3-
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4-
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5-
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6-
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
7-
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
8-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
9-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
10-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
11-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

parser_both_test.go

Lines changed: 65 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ package httparser
33
import (
44
"bytes"
55
"testing"
6-
7-
"github.com/stretchr/testify/assert"
86
)
97

108
// 测试请求body
@@ -102,14 +100,44 @@ func Test_ParserResponse_RequestBody_BOTH(t *testing.T) {
102100
t.Fatal("data length error")
103101
}
104102

105-
assert.Equal(t, i, len(data)) // 总数据长度
106-
assert.Equal(t, field, field2) // header field
107-
assert.Equal(t, string(value), value2) // header field
108-
assert.Equal(t, string(body), body2) // chunked body
109-
assert.True(t, messageBegin)
110-
assert.True(t, messageComplete)
111-
assert.True(t, headersComplete)
112-
assert.True(t, p.EOF())
103+
// 总数据长度
104+
if i != len(data) {
105+
t.Errorf("i(%d) != len(data)(%d)\n", i, len(data))
106+
return
107+
}
108+
109+
if !bytes.Equal(field, field2) {
110+
t.Errorf("field error: %s\n", field)
111+
return
112+
}
113+
if string(value) != value2 {
114+
t.Errorf("value error: %s\n", value)
115+
return
116+
}
117+
118+
if string(body) != body2 {
119+
t.Errorf("body error: %s\n", body)
120+
return
121+
}
122+
123+
if !messageBegin {
124+
t.Error("message begin is false, expect true")
125+
return
126+
}
127+
128+
if !messageComplete {
129+
t.Error("message complete is false, expect true")
130+
return
131+
}
132+
133+
if !headersComplete {
134+
t.Error("headers complete is false, expect true")
135+
return
136+
}
137+
if !p.EOF() {
138+
t.Error("EOF is false, expect true")
139+
return
140+
}
113141

114142
// fmt.Printf("##:%s", stateTab[p.currState])
115143
}
@@ -121,7 +149,9 @@ func Test_ParserResponse_Chunked_Both(t *testing.T) {
121149
rcvBuf := []byte{}
122150
setting := &Setting{
123151
Status: func(p *Parser, buf []byte, _ int) {
124-
assert.Equal(t, buf, []byte("OK"))
152+
if !bytes.Equal(buf, []byte("OK")) {
153+
t.Error("status error")
154+
}
125155
}, MessageBegin: func(p *Parser, _ int) {
126156
messageBegin = true
127157
}, HeaderField: func(p *Parser, buf []byte, _ int) {
@@ -150,19 +180,36 @@ func Test_ParserResponse_Chunked_Both(t *testing.T) {
150180
parserTotal := 0
151181
for _, buf := range rsp {
152182
rv, err := p.Execute(setting, []byte(buf))
153-
assert.NoError(t, err)
154183
if err != nil {
184+
t.Errorf("err:%s", err)
155185
return
156186
}
157187

158188
parserTotal += rv
159189
sentTotal += len(buf)
160190
}
161191

162-
assert.Equal(t, rcvBuf, []byte("MozillaDeveloperNetworknew year"))
163-
assert.Equal(t, p.Major, uint8(1))
164-
assert.Equal(t, p.Minor, uint8(1))
165-
assert.True(t, messageBegin)
166-
assert.Equal(t, sentTotal, parserTotal)
167-
assert.True(t, p.EOF())
192+
if !bytes.Equal(rcvBuf, []byte("MozillaDeveloperNetworknew year")) {
193+
t.Errorf("rcvBuf:%s", rcvBuf)
194+
return
195+
}
196+
if p.Major != 1 || p.Minor != 1 {
197+
t.Errorf("major:%d, minor:%d", p.Major, p.Minor)
198+
return
199+
}
200+
201+
if !messageBegin {
202+
t.Error("message begin is false, expect true")
203+
return
204+
}
205+
206+
if sentTotal != parserTotal {
207+
t.Errorf("sendTotal:%d, parserTotal:%d", sentTotal, parserTotal)
208+
return
209+
}
210+
211+
if !p.EOF() {
212+
t.Error("EOF is false, expect true")
213+
return
214+
}
168215
}

parser_porting_code_test.go

Lines changed: 39 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@
1515
package httparser
1616

1717
import (
18+
"reflect"
1819
"testing"
19-
20-
"github.com/stretchr/testify/assert"
2120
)
2221

2322
type message struct {
@@ -57,57 +56,60 @@ type message struct {
5756
}
5857

5958
func (m *message) eq(t *testing.T, m2 *message) bool {
60-
b := assert.Equal(t, m.messageCompleteCbCalled, m2.messageCompleteCbCalled, "messageCompleteCbCalled")
61-
if !b {
59+
if m.messageCompleteCbCalled != m2.messageCompleteCbCalled {
60+
t.Errorf("messageCompleteCbCalled: %v != %v", m.messageCompleteCbCalled, m2.messageCompleteCbCalled)
6261
return false
6362
}
6463

65-
b = assert.Equal(t, m.method, m2.method, "method")
66-
if !b {
64+
if m.method != m2.method {
65+
t.Errorf("method: %v != %v", m.method, m2.method)
6766
return false
6867
}
6968

70-
b = assert.Equal(t, m.headers, m2.headers)
71-
if !b {
69+
if !reflect.DeepEqual(m.headers, m2.headers) {
70+
t.Errorf("headers: %v\n", m.headers)
71+
t.Errorf("headers: %v\n", m2.headers)
7272
return false
7373
}
7474

75-
b = assert.Equal(t, m.httpMajor, m2.httpMajor, "major")
76-
if !b {
75+
if m.httpMajor != m2.httpMajor {
76+
t.Errorf("httpMajor: %v != %v", m.httpMajor, m2.httpMajor)
7777
return false
7878
}
79-
b = assert.Equal(t, m.httpMinor, m2.httpMinor, "minor")
80-
if !b {
79+
if m.httpMinor != m2.httpMinor {
80+
t.Errorf("httpMinor: %v != %v", m.httpMinor, m2.httpMinor)
8181
return false
8282
}
83-
b = assert.Equal(t, m.hType, m2.hType, "htype")
84-
if !b {
83+
84+
if m.hType != m2.hType {
85+
t.Errorf("hType: %v != %v", m.hType, m2.hType)
8586
return false
8687
}
8788

88-
b = assert.Equal(t, m.requestURL, m2.requestURL, "request url")
89-
if !b {
89+
if m.requestURL != m2.requestURL {
90+
t.Errorf("requestURL: %v != %v", m.requestURL, m2.requestURL)
9091
return false
9192
}
9293

93-
b = assert.Equal(t, m.body, m2.body, "body")
94-
if !b {
94+
if m.body != m2.body {
95+
t.Errorf("body: %v != %v", m.body, m2.body)
9596
return false
9697
}
9798

98-
b = assert.Equal(t, m.responseStatus, m2.responseStatus, "responseStatus")
99-
if !b {
99+
if m.responseStatus != m2.responseStatus {
100+
t.Errorf("responseStatus: %v != %v", m.responseStatus, m2.responseStatus)
100101
return false
101102
}
102103

103-
b = assert.Equal(t, m.statusCode, m2.statusCode, "status code")
104-
if !b {
104+
if m.statusCode != m2.statusCode {
105+
t.Errorf("statusCode: %v != %v", m.statusCode, m2.statusCode)
105106
return false
107+
106108
}
107109

108-
b = assert.Equal(t, m.upgrade, m2.upgrade, "upgrade")
109-
if !b {
110-
return b
110+
if m.upgrade != m2.upgrade {
111+
t.Errorf("upgrade: %v != %v", m.upgrade, m2.upgrade)
112+
return false
111113
}
112114
return true
113115
}
@@ -2002,7 +2004,10 @@ func testMessage(t *testing.T, m *message) {
20022004
// 模拟第1次读包
20032005
if msg1len > 0 {
20042006
n1, err1 = parse(p, msg1Message)
2005-
assert.NoError(t, err1)
2007+
if err1 != nil {
2008+
t.Errorf("msg1len:%d, msg1(%s)", msg1len, msg1Message)
2009+
return
2010+
}
20062011
// 如果有upgrade状态, 就不需要再重复送往数据
20072012
if p.ReadyUpgradeData() {
20082013
//if p.callMessageComplete && p.Upgrade {
@@ -2021,13 +2026,19 @@ func testMessage(t *testing.T, m *message) {
20212026
got.upgrade += data[n2:]
20222027
goto test
20232028
}
2024-
assert.NoError(t, err)
2029+
if err != nil {
2030+
t.Error(err)
2031+
return
2032+
}
20252033

20262034
test:
20272035

20282036
// flush 解析器
20292037
_, err = parse(p, "")
2030-
assert.NoError(t, err)
2038+
if err != nil {
2039+
t.Error(err)
2040+
return
2041+
}
20312042
if b := m.eq(t, got); !b {
20322043
t.Logf("msg1.len:%d, msg2.len:%d, test case name:%s\n", len(msg1Message), len(msg2Message), m.name)
20332044
t.Logf("msg1len:%d, msg1(%s)", msg1len, msg1Message)

0 commit comments

Comments
 (0)