(t *testing.T)
| 226 | } |
| 227 | |
| 228 | func (s) TestMultipleParsing(t *testing.T) { |
| 229 | // Set a byte stream consists of 3 messages with their headers. |
| 230 | p := []byte{0, 0, 0, 0, 1, 'a', 0, 0, 0, 0, 2, 'b', 'c', 0, 0, 0, 0, 1, 'd'} |
| 231 | b := &fullReader{p} |
| 232 | parser := &parser{r: b, bufferPool: mem.DefaultBufferPool()} |
| 233 | |
| 234 | wantRecvs := []struct { |
| 235 | pt payloadFormat |
| 236 | data []byte |
| 237 | }{ |
| 238 | {compressionNone, []byte("a")}, |
| 239 | {compressionNone, []byte("bc")}, |
| 240 | {compressionNone, []byte("d")}, |
| 241 | } |
| 242 | for i, want := range wantRecvs { |
| 243 | pt, data, err := parser.recvMsg(math.MaxInt32) |
| 244 | if err != nil || pt != want.pt || !reflect.DeepEqual(data.Materialize(), want.data) { |
| 245 | t.Fatalf("after %d calls, parser{%v}.recvMsg(_) = %v, %v, %v\nwant %v, %v, <nil>", |
| 246 | i, p, pt, data, err, want.pt, want.data) |
| 247 | } |
| 248 | } |
| 249 | |
| 250 | pt, data, err := parser.recvMsg(math.MaxInt32) |
| 251 | if err != io.EOF { |
| 252 | t.Fatalf("after %d recvMsgs calls, parser{%v}.recvMsg(_) = %v, %v, %v\nwant _, _, %v", |
| 253 | len(wantRecvs), p, pt, data, err, io.EOF) |
| 254 | } |
| 255 | } |
| 256 | |
| 257 | func (s) TestEncode(t *testing.T) { |
| 258 | for _, test := range []struct { |
nothing calls this directly
no test coverage detected