// 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) } } }