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