...
1 package logfmt
2
3 import (
4 "bytes"
5 "testing"
6 )
7
8 func BenchmarkDecodeKeyval(b *testing.B) {
9 const rows = 10000
10 data := []byte{}
11 for i := 0; i < rows; i++ {
12 data = append(data, "a=1 b=\"bar\" ƒ=2h3s r=\"esc\\tmore stuff\" d x=sf \n"...)
13 }
14
15 b.SetBytes(int64(len(data)))
16 b.ResetTimer()
17 for i := 0; i < b.N; i++ {
18 var (
19 dec = NewDecoder(bytes.NewReader(data))
20 j = 0
21 )
22 for dec.ScanRecord() {
23 for dec.ScanKeyval() {
24 }
25 j++
26 }
27 if err := dec.Err(); err != nil {
28 b.Errorf("got %v, want %v", err, nil)
29 }
30 if j != rows {
31 b.Errorf("got %v, want %v", j, rows)
32 }
33 }
34 }
35
View as plain text