export_test.go 875 B

123456789101112131415161718192021222324252627
  1. package export_test
  2. import (
  3. "bytes"
  4. "testing"
  5. "github.com/docker/docker/daemon/logger/journald/internal/export"
  6. "gotest.tools/v3/assert"
  7. "gotest.tools/v3/golden"
  8. )
  9. func TestExportSerialization(t *testing.T) {
  10. must := func(err error) { t.Helper(); assert.NilError(t, err) }
  11. var buf bytes.Buffer
  12. must(export.WriteField(&buf, "_TRANSPORT", "journal"))
  13. must(export.WriteField(&buf, "MESSAGE", "this is a single-line message.\t🚀"))
  14. must(export.WriteField(&buf, "EMPTY_VALUE", ""))
  15. must(export.WriteField(&buf, "NEWLINE", "\n"))
  16. must(export.WriteEndOfEntry(&buf))
  17. must(export.WriteField(&buf, "MESSAGE", "this is a\nmulti line\nmessage"))
  18. must(export.WriteField(&buf, "INVALID_UTF8", "a\x80b"))
  19. must(export.WriteField(&buf, "BINDATA", "\x00\x01\x02\x03"))
  20. must(export.WriteEndOfEntry(&buf))
  21. golden.Assert(t, buf.String(), "export-serialization.golden")
  22. }