2011-09-28 22:47:30 +00:00
|
|
|
package logging
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2011-10-22 11:06:18 +00:00
|
|
|
// Note: the below is deliberately PLACED AT THE TOP OF THIS FILE because
|
|
|
|
// it is fragile. It ensures the right file:line is logged. Sorry!
|
|
|
|
func TestLogCorrectLineNumbers(t *testing.T) {
|
2011-10-22 15:15:46 +00:00
|
|
|
l, m := NewMock()
|
2011-10-22 11:06:18 +00:00
|
|
|
l.Log(Error, "Error!")
|
2011-10-22 15:15:46 +00:00
|
|
|
if s := string(m[Error].written); s[20:] != "log_test.go:11: ERROR Error!\n" {
|
2011-10-22 11:06:18 +00:00
|
|
|
t.Errorf("Error incorrectly logged (check line numbers!)")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-10-22 14:43:13 +00:00
|
|
|
func TestStandardLogging(t *testing.T) {
|
2011-10-22 15:15:46 +00:00
|
|
|
l, m := NewMock()
|
2011-10-27 17:24:08 +00:00
|
|
|
l.SetLogLevel(Error)
|
2011-10-22 11:06:18 +00:00
|
|
|
|
|
|
|
l.Log(4, "Nothing should be logged yet")
|
2011-10-22 14:43:13 +00:00
|
|
|
m.CheckNothingWritten(t)
|
2011-10-22 11:06:18 +00:00
|
|
|
|
|
|
|
l.Log(Debug, "or yet...")
|
2011-10-22 14:43:13 +00:00
|
|
|
m.CheckNothingWritten(t)
|
2011-10-22 11:06:18 +00:00
|
|
|
|
|
|
|
l.Log(Info, "or yet...")
|
2011-10-22 14:43:13 +00:00
|
|
|
m.CheckNothingWritten(t)
|
2011-10-22 11:06:18 +00:00
|
|
|
|
|
|
|
l.Log(Warn, "or yet!")
|
2011-10-22 14:43:13 +00:00
|
|
|
m.CheckNothingWritten(t)
|
2011-10-22 11:06:18 +00:00
|
|
|
|
|
|
|
l.Log(Error, "Error!")
|
2011-10-22 14:43:13 +00:00
|
|
|
m.CheckWrittenAtLevel(t, Error, "Error!")
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestAllLoggingLevels(t *testing.T) {
|
2011-10-22 15:15:46 +00:00
|
|
|
l, m := NewMock()
|
2011-10-22 14:43:13 +00:00
|
|
|
l.SetLogLevel(5)
|
|
|
|
|
|
|
|
l.Log(4, "Log to level 4.")
|
|
|
|
m.CheckWrittenAtLevel(t, 4, "Log to level 4.")
|
|
|
|
|
|
|
|
l.Debug("Log to debug.")
|
|
|
|
m.CheckWrittenAtLevel(t, Debug, "Log to debug.")
|
|
|
|
|
|
|
|
l.Info("Log to info.")
|
|
|
|
m.CheckWrittenAtLevel(t, Info, "Log to info.")
|
|
|
|
|
|
|
|
l.Warn("Log to warning.")
|
|
|
|
m.CheckWrittenAtLevel(t, Warn, "Log to warning.")
|
|
|
|
|
|
|
|
l.Error("Log to error.")
|
|
|
|
m.CheckWrittenAtLevel(t, Error, "Log to error.")
|
|
|
|
|
|
|
|
// recover to track the panic caused by Fatal.
|
|
|
|
defer func() { recover() }()
|
|
|
|
l.Fatal("Log to fatal.")
|
|
|
|
m.CheckWrittenAtLevel(t, Fatal, "Log to fatal.")
|
2011-10-22 11:06:18 +00:00
|
|
|
}
|