perf_test.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package rfc3164
  2. import "testing"
  3. var e error
  4. func BenchmarkParse(b *testing.B) {
  5. tests := []struct {
  6. input []byte
  7. opts []RFC3164Option
  8. }{
  9. {
  10. []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{},
  11. },
  12. {
  13. []byte("<12>May 20 09:33:54 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 kernel: foo"), []RFC3164Option{WithCurrentYear()},
  14. },
  15. {
  16. []byte("<12>May 20 09:33:54 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 kernel: foo"), []RFC3164Option{WithStrictHostname()},
  17. },
  18. {
  19. []byte("foobar"), []RFC3164Option{},
  20. },
  21. {
  22. []byte("<12>"), []RFC3164Option{},
  23. },
  24. {
  25. []byte("<12>May 02 09:33:54"), []RFC3164Option{},
  26. },
  27. {
  28. []byte("<12>May 02 09:33:54 foo.bar"), []RFC3164Option{},
  29. },
  30. {
  31. []byte("<12>May 02 09:33:54 foo.bar bla[42"), []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"), []RFC3164Option{},
  41. },
  42. {
  43. []byte("<12>May 02 09:33:54 foo.bar bla:"), []RFC3164Option{},
  44. },
  45. {
  46. []byte(""), []RFC3164Option{},
  47. },
  48. }
  49. var err error
  50. for _, test := range tests {
  51. b.Run(string(test.input), func(b *testing.B) {
  52. for i := 0; i < b.N; i++ {
  53. r := NewRFC3164Parser(test.opts...)
  54. err = r.Parse(test.input)
  55. }
  56. })
  57. }
  58. e = err
  59. }