github.com/SandwichDev/go-internals@v0.0.0-20210605002614-12311ac6b2c5/poll/writev_test.go (about) 1 // Copyright 2016 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package poll_test 6 7 import ( 8 "reflect" 9 "testing" 10 11 "github.com/SandwichDev/go-internals/poll" 12 ) 13 14 func TestConsume(t *testing.T) { 15 tests := []struct { 16 in [][]byte 17 consume int64 18 want [][]byte 19 }{ 20 { 21 in: [][]byte{[]byte("foo"), []byte("bar")}, 22 consume: 0, 23 want: [][]byte{[]byte("foo"), []byte("bar")}, 24 }, 25 { 26 in: [][]byte{[]byte("foo"), []byte("bar")}, 27 consume: 2, 28 want: [][]byte{[]byte("o"), []byte("bar")}, 29 }, 30 { 31 in: [][]byte{[]byte("foo"), []byte("bar")}, 32 consume: 3, 33 want: [][]byte{[]byte("bar")}, 34 }, 35 { 36 in: [][]byte{[]byte("foo"), []byte("bar")}, 37 consume: 4, 38 want: [][]byte{[]byte("ar")}, 39 }, 40 { 41 in: [][]byte{nil, nil, nil, []byte("bar")}, 42 consume: 1, 43 want: [][]byte{[]byte("ar")}, 44 }, 45 { 46 in: [][]byte{nil, nil, nil, []byte("foo")}, 47 consume: 0, 48 want: [][]byte{[]byte("foo")}, 49 }, 50 { 51 in: [][]byte{nil, nil, nil}, 52 consume: 0, 53 want: [][]byte{}, 54 }, 55 } 56 for i, tt := range tests { 57 in := tt.in 58 poll.Consume(&in, tt.consume) 59 if !reflect.DeepEqual(in, tt.want) { 60 t.Errorf("%d. after consume(%d) = %+v, want %+v", i, tt.consume, in, tt.want) 61 } 62 } 63 }