|
|
@@ -2,32 +2,58 @@ package log
|
|
|
|
|
|
import (
|
|
|
"bytes"
|
|
|
- "testing"
|
|
|
-
|
|
|
"os"
|
|
|
"os/exec"
|
|
|
+ "sync"
|
|
|
+ "testing"
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
)
|
|
|
|
|
|
+func test(l *Logger, v Level, t *testing.T) {
|
|
|
+ l.SetLevel(v)
|
|
|
+ l.Print("print")
|
|
|
+ l.Printf("print%s", "f")
|
|
|
+ l.Debug("debug")
|
|
|
+ l.Debugf("debug%s", "f")
|
|
|
+ l.Info("info")
|
|
|
+ l.Infof("info%s", "f")
|
|
|
+ l.Warn("warn")
|
|
|
+ l.Warnf("warn%s", "f")
|
|
|
+ l.Error("error")
|
|
|
+ l.Errorf("error%s", "f")
|
|
|
+}
|
|
|
+
|
|
|
func TestLog(t *testing.T) {
|
|
|
l := New("test")
|
|
|
b := new(bytes.Buffer)
|
|
|
l.SetOutput(b)
|
|
|
test(l, DEBUG, t)
|
|
|
- assert.Contains(t, b.String(), "debug")
|
|
|
- assert.Contains(t, b.String(), "debugf")
|
|
|
- assert.Contains(t, b.String(), "warn")
|
|
|
- assert.Contains(t, b.String(), "warnf")
|
|
|
+ assert.Contains(t, b.String(), "\nDEBUG|test|debug\n")
|
|
|
+ assert.Contains(t, b.String(), "\nDEBUG|test|debugf\n")
|
|
|
+ assert.Contains(t, b.String(), "\nWARN|test|warn\n")
|
|
|
+ assert.Contains(t, b.String(), "\nWARN|test|warnf\n")
|
|
|
|
|
|
b.Reset()
|
|
|
SetOutput(b)
|
|
|
test(global, WARN, t)
|
|
|
assert.NotContains(t, b.String(), "info")
|
|
|
- assert.Contains(t, b.String(), "warn")
|
|
|
+ assert.Contains(t, b.String(), "\nWARN|-|warn\n")
|
|
|
println(b.String())
|
|
|
}
|
|
|
|
|
|
+func TestLogConcurrent(t *testing.T) {
|
|
|
+ var wg sync.WaitGroup
|
|
|
+ for i := 0; i < 2; i++ {
|
|
|
+ wg.Add(1)
|
|
|
+ go func() {
|
|
|
+ TestLog(t)
|
|
|
+ wg.Done()
|
|
|
+ }()
|
|
|
+ }
|
|
|
+ wg.Wait()
|
|
|
+}
|
|
|
+
|
|
|
func TestFatal(t *testing.T) {
|
|
|
l := New("test")
|
|
|
switch os.Getenv("TEST_LOGGER_FATAL") {
|
|
|
@@ -56,17 +82,3 @@ func loggerFatalTest(t *testing.T, env string, contains string) {
|
|
|
}
|
|
|
t.Fatalf("process ran with err %v, want exit status 1", err)
|
|
|
}
|
|
|
-
|
|
|
-func test(l *Logger, v Level, t *testing.T) {
|
|
|
- l.SetLevel(v)
|
|
|
- l.Print("print")
|
|
|
- l.Printf("print%s", "f")
|
|
|
- l.Debug("debug")
|
|
|
- l.Debugf("debug%s", "f")
|
|
|
- l.Info("info")
|
|
|
- l.Infof("info%s", "f")
|
|
|
- l.Warn("warn")
|
|
|
- l.Warnf("warn%s", "f")
|
|
|
- l.Error("error")
|
|
|
- l.Errorf("error%s", "f")
|
|
|
-}
|