123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package local
- import (
- "io"
- "os"
- "testing"
- "github.com/docker/docker/daemon/logger"
- "github.com/pkg/errors"
- "gotest.tools/v3/assert"
- )
- func TestDecode(t *testing.T) {
- buf := make([]byte, 0)
- err := marshal(&logger.Message{Line: []byte("hello")}, &buf)
- assert.NilError(t, err)
- for i := 0; i < len(buf); i++ {
- testDecode(t, buf, i)
- }
- }
- func testDecode(t *testing.T, buf []byte, split int) {
- fw, err := os.CreateTemp("", t.Name())
- assert.NilError(t, err)
- defer os.Remove(fw.Name())
- fr, err := os.Open(fw.Name())
- assert.NilError(t, err)
- d := &decoder{rdr: fr}
- if split > 0 {
- _, err = fw.Write(buf[0:split])
- assert.NilError(t, err)
- _, err = d.Decode()
- assert.Assert(t, errors.Is(err, io.EOF))
- _, err = fw.Write(buf[split:])
- assert.NilError(t, err)
- } else {
- _, err = fw.Write(buf)
- assert.NilError(t, err)
- }
- message, err := d.Decode()
- assert.NilError(t, err)
- assert.Equal(t, "hello\n", string(message.Line))
- }
|