@@ -11,6 +11,7 @@ package mysql
11
11
import (
12
12
"bytes"
13
13
"errors"
14
+ "fmt"
14
15
"net"
15
16
"testing"
16
17
"time"
@@ -132,31 +133,57 @@ func TestReadPacketSingleByte(t *testing.T) {
132
133
}
133
134
}
134
135
136
+ type mockLogger struct {
137
+ bytes.Buffer
138
+ }
139
+
140
+ func (ml * mockLogger ) Print (v ... any ) {
141
+ ml .WriteString (fmt .Sprint (v ... ) + "\n " )
142
+ }
143
+
135
144
func TestReadPacketWrongSequenceID (t * testing.T ) {
136
145
conn := new (mockConn )
137
146
mc := & mysqlConn {
138
147
buf : newBuffer (conn ),
148
+ cfg : NewConfig (),
139
149
}
150
+ logger := & mockLogger {}
151
+ mc .cfg .Logger = Logger (logger )
140
152
141
153
// too low sequence id
142
154
conn .data = []byte {0x01 , 0x00 , 0x00 , 0x00 , 0xff }
143
155
conn .maxReads = 1
144
156
mc .sequence = 1
145
- _ , err := mc .readPacket ()
146
- if err != ErrPktSync {
147
- t .Errorf ("expected ErrPktSync, got %v" , err )
157
+ data , err := mc .readPacket ()
158
+ if err != nil {
159
+ t .Errorf ("expected nil, got %v" , err )
160
+ }
161
+ if len (data ) != 1 || data [0 ] != 0xff {
162
+ t .Errorf ("expected [0xff], got % x" , data )
163
+ }
164
+ logMsg := logger .String ()
165
+ if logMsg != ErrPktSync .Error ()+ "\n " {
166
+ t .Errorf ("expected ErrPktSync.Error(), got %q" , logMsg )
148
167
}
149
168
150
169
// reset
151
170
conn .reads = 0
152
171
mc .sequence = 0
153
172
mc .buf = newBuffer (conn )
173
+ logger .Reset ()
154
174
155
175
// too high sequence id
156
176
conn .data = []byte {0x01 , 0x00 , 0x00 , 0x42 , 0xff }
157
- _ , err = mc .readPacket ()
158
- if err != ErrPktSyncMul {
159
- t .Errorf ("expected ErrPktSyncMul, got %v" , err )
177
+ data , err = mc .readPacket ()
178
+ if err != nil {
179
+ t .Errorf ("expected nil, got %v" , err )
180
+ }
181
+ if len (data ) != 1 || data [0 ] != 0xff {
182
+ t .Errorf ("expected [0xff], got % x" , data )
183
+ }
184
+ logMsg = logger .String ()
185
+ if logMsg != ErrPktSyncMul .Error ()+ "\n " {
186
+ t .Errorf ("expected ErrPktSync.Error(), got %q" , logMsg )
160
187
}
161
188
}
162
189
0 commit comments