Skip to content

Commit 59d0d57

Browse files
committed
refactor
1 parent 962608a commit 59d0d57

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

driver_test.go

+13-6
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,8 @@ func runTests(t *testing.T, dsn string, tests ...func(dbt *DBTest)) {
150150
t.Fatalf("connecting %q: %s", dsn, err)
151151
}
152152
defer db.Close()
153-
154-
cleanup := func() {
155-
db.Exec("DROP TABLE IF EXISTS test")
153+
if err = db.Ping(); err != nil {
154+
t.Fatalf("connecting %q: %s", dsn, err)
156155
}
157156

158157
dsn2 := dsn + "&interpolateParams=true"
@@ -173,23 +172,31 @@ func runTests(t *testing.T, dsn string, tests ...func(dbt *DBTest)) {
173172
}
174173
defer db3.Close()
175174

175+
cleanupSql := "DROP TABLE IF EXISTS test"
176+
176177
for _, test := range tests {
177178
test := test
178179
t.Run("default", func(t *testing.T) {
179180
dbt := &DBTest{t, db}
180-
t.Cleanup(cleanup)
181+
t.Cleanup(func() {
182+
db.Exec(cleanupSql)
183+
})
181184
test(dbt)
182185
})
183186
if db2 != nil {
184187
t.Run("interpolateParams", func(t *testing.T) {
185188
dbt2 := &DBTest{t, db2}
186-
t.Cleanup(cleanup)
189+
t.Cleanup(func() {
190+
db2.Exec(cleanupSql)
191+
})
187192
test(dbt2)
188193
})
189194
}
190195
t.Run("compress", func(t *testing.T) {
191196
dbt3 := &DBTest{t, db3}
192-
t.Cleanup(cleanup)
197+
t.Cleanup(func() {
198+
db3.Exec(cleanupSql)
199+
})
193200
test(dbt3)
194201
})
195202
}

packets.go

+12-14
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import (
2828
// Read packet to buffer 'data'
2929
func (mc *mysqlConn) readPacket() ([]byte, error) {
3030
var prevData []byte
31-
invalid := false
31+
invalidSequence := false
3232

3333
readNext := mc.buf.readNext
3434
if mc.compress {
@@ -67,8 +67,7 @@ func (mc *mysqlConn) readPacket() ([]byte, error) {
6767
mc.close()
6868
return nil, ErrPktSyncMul
6969
}
70-
// TODO(methane): report error when the packet is not an error packet.
71-
invalid = true
70+
invalidSequence = true
7271
}
7372
mc.sequence++
7473
}
@@ -99,19 +98,18 @@ func (mc *mysqlConn) readPacket() ([]byte, error) {
9998
// return data if this was the last packet
10099
if pktLen < maxPacketSize {
101100
// zero allocations for non-split packets
102-
if prevData == nil {
103-
if invalid {
104-
mc.close()
105-
// return sync error only for regular packet.
106-
// error packets may have wrong sequence number.
107-
if data[0] != iERR {
108-
return nil, ErrPktSync
109-
}
101+
if prevData != nil {
102+
data = append(prevData, data...)
103+
}
104+
if invalidSequence {
105+
mc.close()
106+
// return sync error only for regular packet.
107+
// error packets may have wrong sequence number.
108+
if data[0] != iERR {
109+
return nil, ErrPktSync
110110
}
111-
return data, nil
112111
}
113-
114-
return append(prevData, data...), nil
112+
return data, nil
115113
}
116114

117115
prevData = append(prevData, data...)

0 commit comments

Comments
 (0)