jsonlog_test.go 677 B

123456789101112131415161718192021222324252627282930313233
  1. package jsonlog
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "io/ioutil"
  6. "testing"
  7. "time"
  8. "github.com/docker/docker/pkg/timeutils"
  9. )
  10. func BenchmarkWriteLog(b *testing.B) {
  11. var buf bytes.Buffer
  12. e := json.NewEncoder(&buf)
  13. testLine := "Line that thinks that it is log line from docker\n"
  14. for i := 0; i < 30; i++ {
  15. e.Encode(JSONLog{Log: testLine, Stream: "stdout", Created: time.Now()})
  16. }
  17. r := bytes.NewReader(buf.Bytes())
  18. w := ioutil.Discard
  19. format := timeutils.RFC3339NanoFixed
  20. b.SetBytes(int64(r.Len()))
  21. b.ResetTimer()
  22. for i := 0; i < b.N; i++ {
  23. if err := WriteLog(r, w, format); err != nil {
  24. b.Fatal(err)
  25. }
  26. b.StopTimer()
  27. r.Seek(0, 0)
  28. b.StartTimer()
  29. }
  30. }