syslog_test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // +build linux
  2. package syslog
  3. import (
  4. syslog "github.com/RackSec/srslog"
  5. "reflect"
  6. "testing"
  7. )
  8. func functionMatches(expectedFun interface{}, actualFun interface{}) bool {
  9. return reflect.ValueOf(expectedFun).Pointer() == reflect.ValueOf(actualFun).Pointer()
  10. }
  11. func TestParseLogFormat(t *testing.T) {
  12. formatter, framer, err := parseLogFormat("rfc5424")
  13. if err != nil || !functionMatches(rfc5424formatterWithAppNameAsTag, formatter) ||
  14. !functionMatches(syslog.RFC5425MessageLengthFramer, framer) {
  15. t.Fatal("Failed to parse rfc5424 format", err, formatter, framer)
  16. }
  17. formatter, framer, err = parseLogFormat("rfc5424micro")
  18. if err != nil || !functionMatches(rfc5424microformatterWithAppNameAsTag, formatter) ||
  19. !functionMatches(syslog.RFC5425MessageLengthFramer, framer) {
  20. t.Fatal("Failed to parse rfc5424 (microsecond) format", err, formatter, framer)
  21. }
  22. formatter, framer, err = parseLogFormat("rfc3164")
  23. if err != nil || !functionMatches(syslog.RFC3164Formatter, formatter) ||
  24. !functionMatches(syslog.DefaultFramer, framer) {
  25. t.Fatal("Failed to parse rfc3164 format", err, formatter, framer)
  26. }
  27. formatter, framer, err = parseLogFormat("")
  28. if err != nil || !functionMatches(syslog.UnixFormatter, formatter) ||
  29. !functionMatches(syslog.DefaultFramer, framer) {
  30. t.Fatal("Failed to parse empty format", err, formatter, framer)
  31. }
  32. formatter, framer, err = parseLogFormat("invalid")
  33. if err == nil {
  34. t.Fatal("Failed to parse invalid format", err, formatter, framer)
  35. }
  36. }
  37. func TestValidateLogOptEmpty(t *testing.T) {
  38. emptyConfig := make(map[string]string)
  39. if err := ValidateLogOpt(emptyConfig); err != nil {
  40. t.Fatal("Failed to parse empty config", err)
  41. }
  42. }