187 lines
3.4 KiB
Go
187 lines
3.4 KiB
Go
package log
|
|
|
|
import (
|
|
"bytes"
|
|
"log"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
const teststring = "asdf123"
|
|
|
|
func TestOutputf(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Level = LevelDebug
|
|
outputf(LevelDebug, teststring, nil)
|
|
|
|
// outputf correctly prints string
|
|
if !strings.Contains(buf.String(), teststring) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestOutput(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Level = LevelDebug
|
|
output(LevelDebug, nil)
|
|
|
|
// outputf correctly prints string with proper Debug prefix
|
|
if !strings.Contains(buf.String(), levelPrefix[LevelDebug]) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestCriticalf(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Criticalf(teststring, nil)
|
|
|
|
// outputf correctly prints string
|
|
// should never fail because critical > debug
|
|
if !strings.Contains(buf.String(), teststring) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestCritical(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Critical(nil)
|
|
|
|
// outputf correctly prints string
|
|
if !strings.Contains(buf.String(), levelPrefix[LevelCritical]) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestWarningf(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Warningf(teststring, nil)
|
|
|
|
// outputf correctly prints string
|
|
// should never fail because fatal critical > debug
|
|
if !strings.Contains(buf.String(), teststring) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestWarning(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Warning(nil)
|
|
|
|
// outputf correctly prints string
|
|
if !strings.Contains(buf.String(), levelPrefix[LevelWarning]) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestInfof(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Infof(teststring, nil)
|
|
|
|
// outputf correctly prints string
|
|
// should never fail because fatal info > debug
|
|
if !strings.Contains(buf.String(), teststring) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestInfo(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Info(nil)
|
|
|
|
// outputf correctly prints string
|
|
if !strings.Contains(buf.String(), levelPrefix[LevelInfo]) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestDebugf(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Level = LevelDebug
|
|
Debugf(teststring, nil)
|
|
|
|
// outputf correctly prints string
|
|
// should never fail because fatal debug >= debug
|
|
if !strings.Contains(buf.String(), teststring) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
func TestDebug(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
log.SetOutput(buf)
|
|
Level = LevelDebug
|
|
Debug(nil)
|
|
|
|
// outputf correctly prints string
|
|
if !strings.Contains(buf.String(), levelPrefix[LevelDebug]) {
|
|
t.Fail()
|
|
}
|
|
return
|
|
}
|
|
|
|
type testSyslogger struct {
|
|
*bytes.Buffer
|
|
}
|
|
|
|
func (l testSyslogger) Debug(s string) {
|
|
l.WriteString("[DEBUG] ")
|
|
_, _ = l.WriteString(s)
|
|
}
|
|
|
|
func (l testSyslogger) Info(s string) {
|
|
l.WriteString("[INFO] ")
|
|
_, _ = l.WriteString(s)
|
|
}
|
|
|
|
func (l testSyslogger) Warning(s string) {
|
|
l.WriteString("[WARN] ")
|
|
_, _ = l.WriteString(s)
|
|
}
|
|
|
|
func (l testSyslogger) Err(s string) {
|
|
l.WriteString("[ERROR] ")
|
|
_, _ = l.WriteString(s)
|
|
}
|
|
|
|
func (l testSyslogger) Crit(s string) {
|
|
l.WriteString("[CRIT] ")
|
|
_, _ = l.WriteString(s)
|
|
}
|
|
|
|
func (l testSyslogger) Emerg(s string) {
|
|
l.WriteString("[FATAL] ")
|
|
_, _ = l.WriteString(s)
|
|
}
|
|
|
|
func TestSetLogger(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
SetLogger(testSyslogger{buf})
|
|
Level = LevelDebug
|
|
outputf(LevelDebug, teststring, nil)
|
|
|
|
// outputf correctly prints string
|
|
if !strings.Contains(buf.String(), teststring) {
|
|
t.Fail()
|
|
}
|
|
SetLogger(nil)
|
|
return
|
|
}
|