github.com/crowdsecurity/crowdsec@v1.6.1/pkg/acquisition/modules/syslog/internal/parser/rfc3164/perf_test.go (about) 1 package rfc3164 2 3 import "testing" 4 5 var e error 6 7 func BenchmarkParse(b *testing.B) { 8 tests := []struct { 9 input []byte 10 opts []RFC3164Option 11 }{ 12 { 13 []byte("<12>May 20 09:33:54 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 kernel: [1670546.400229] IN=eth9 OUT= MAC=24:5a:4c:7b:0a:4c:34:27:92:67:0f:2b:08:00 SRC=79.124.62.34 DST=x.x.x.x LEN=44 TOS=0x00 PREC=0x00 TTL=243 ID=37520 PROTO=TCP SPT=55055 DPT=51443 WINDOW=1024 RES=0x00 SYN URGP=0"), []RFC3164Option{}, 14 }, 15 { 16 []byte("<12>May 20 09:33:54 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 kernel: foo"), []RFC3164Option{WithCurrentYear()}, 17 }, 18 { 19 []byte("<12>May 20 09:33:54 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 kernel: foo"), []RFC3164Option{WithStrictHostname()}, 20 }, 21 { 22 []byte("foobar"), []RFC3164Option{}, 23 }, 24 { 25 []byte("<12>"), []RFC3164Option{}, 26 }, 27 { 28 []byte("<12>May 02 09:33:54"), []RFC3164Option{}, 29 }, 30 { 31 []byte("<12>May 02 09:33:54 foo.bar"), []RFC3164Option{}, 32 }, 33 { 34 []byte("<12>May 02 09:33:54 foo.bar bla[42"), []RFC3164Option{}, 35 }, 36 { 37 []byte("<12>May 02 09:33:54 foo.bar bla[42]"), []RFC3164Option{}, 38 }, 39 { 40 []byte("<12>May 02 09:33:54 foo.bar bla[42]: "), []RFC3164Option{}, 41 }, 42 { 43 []byte("<12>May 02 09:33:54 foo.bar bla"), []RFC3164Option{}, 44 }, 45 { 46 []byte("<12>May 02 09:33:54 foo.bar bla:"), []RFC3164Option{}, 47 }, 48 { 49 []byte(""), []RFC3164Option{}, 50 }, 51 } 52 var err error 53 for _, test := range tests { 54 test := test 55 b.Run(string(test.input), func(b *testing.B) { 56 for i := 0; i < b.N; i++ { 57 r := NewRFC3164Parser(test.opts...) 58 err = r.Parse(test.input) 59 } 60 }) 61 } 62 e = err 63 }