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  }