github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/engine/daemon/logger/loggerutils/follow_test.go (about) 1 package loggerutils // import "github.com/docker/docker/daemon/logger/loggerutils" 2 3 import ( 4 "io" 5 "os" 6 "testing" 7 8 "gotest.tools/v3/assert" 9 ) 10 11 func TestHandleDecoderErr(t *testing.T) { 12 f, err := os.CreateTemp("", t.Name()) 13 assert.NilError(t, err) 14 defer os.Remove(f.Name()) 15 16 _, err = f.Write([]byte("hello")) 17 assert.NilError(t, err) 18 19 pos, err := f.Seek(0, io.SeekCurrent) 20 assert.NilError(t, err) 21 assert.Assert(t, pos != 0) 22 23 dec := &testDecoder{} 24 25 // Simulate "turncate" case, where the file was bigger before. 26 fl := &follow{file: f, dec: dec, oldSize: 100} 27 err = fl.handleDecodeErr(io.EOF) 28 assert.NilError(t, err) 29 30 // handleDecodeErr seeks to zero. 31 pos, err = f.Seek(0, io.SeekCurrent) 32 assert.NilError(t, err) 33 assert.Equal(t, int64(0), pos) 34 35 // Reset is called. 36 assert.Equal(t, 1, dec.resetCount) 37 }