|  | // Copyright 2016 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | package poll_test | 
|  |  | 
|  | import ( | 
|  | "internal/poll" | 
|  | "reflect" | 
|  | "testing" | 
|  | ) | 
|  |  | 
|  | func TestConsume(t *testing.T) { | 
|  | tests := []struct { | 
|  | in      [][]byte | 
|  | consume int64 | 
|  | want    [][]byte | 
|  | }{ | 
|  | { | 
|  | in:      [][]byte{[]byte("foo"), []byte("bar")}, | 
|  | consume: 0, | 
|  | want:    [][]byte{[]byte("foo"), []byte("bar")}, | 
|  | }, | 
|  | { | 
|  | in:      [][]byte{[]byte("foo"), []byte("bar")}, | 
|  | consume: 2, | 
|  | want:    [][]byte{[]byte("o"), []byte("bar")}, | 
|  | }, | 
|  | { | 
|  | in:      [][]byte{[]byte("foo"), []byte("bar")}, | 
|  | consume: 3, | 
|  | want:    [][]byte{[]byte("bar")}, | 
|  | }, | 
|  | { | 
|  | in:      [][]byte{[]byte("foo"), []byte("bar")}, | 
|  | consume: 4, | 
|  | want:    [][]byte{[]byte("ar")}, | 
|  | }, | 
|  | { | 
|  | in:      [][]byte{nil, nil, nil, []byte("bar")}, | 
|  | consume: 1, | 
|  | want:    [][]byte{[]byte("ar")}, | 
|  | }, | 
|  | { | 
|  | in:      [][]byte{nil, nil, nil, []byte("foo")}, | 
|  | consume: 0, | 
|  | want:    [][]byte{[]byte("foo")}, | 
|  | }, | 
|  | { | 
|  | in:      [][]byte{nil, nil, nil}, | 
|  | consume: 0, | 
|  | want:    [][]byte{}, | 
|  | }, | 
|  | } | 
|  | for i, tt := range tests { | 
|  | in := tt.in | 
|  | poll.Consume(&in, tt.consume) | 
|  | if !reflect.DeepEqual(in, tt.want) { | 
|  | t.Errorf("%d. after consume(%d) = %+v, want %+v", i, tt.consume, in, tt.want) | 
|  | } | 
|  | } | 
|  | } |