forked from TrueCloudLab/rclone
vendor: switch to using go1.11 modules
This commit is contained in:
parent
5c75453aba
commit
da1682a30e
6142 changed files with 390 additions and 5155875 deletions
145
vendor/github.com/pengsrc/go-shared/log/event_test.go
generated
vendored
145
vendor/github.com/pengsrc/go-shared/log/event_test.go
generated
vendored
|
@ -1,145 +0,0 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"sync"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/pengsrc/go-shared/buffer"
|
||||
"github.com/pengsrc/go-shared/convert"
|
||||
)
|
||||
|
||||
func TestEventCallerPool(t *testing.T) {
|
||||
p := NewEventCallerPool()
|
||||
|
||||
var wg sync.WaitGroup
|
||||
for g := 0; g < 10; g++ {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
for i := 0; i < 100; i++ {
|
||||
eventCaller := p.Get()
|
||||
assert.NotNil(t, eventCaller)
|
||||
eventCaller.Free()
|
||||
}
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func TestEntryCaller(t *testing.T) {
|
||||
tests := []struct {
|
||||
caller *EventCaller
|
||||
full string
|
||||
short string
|
||||
}{
|
||||
{
|
||||
caller: newEventCaller(100, "/path/to/foo.go", 42, false),
|
||||
full: "undefined",
|
||||
short: "undefined",
|
||||
},
|
||||
{
|
||||
caller: newEventCaller(100, "/path/to/foo.go", 42, true),
|
||||
full: "/path/to/foo.go:42",
|
||||
short: "to/foo.go:42",
|
||||
},
|
||||
{
|
||||
caller: newEventCaller(100, "to/foo.go", 42, true),
|
||||
full: "to/foo.go:42",
|
||||
short: "to/foo.go:42",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
assert.Equal(t, tt.full, tt.caller.String(), "Unexpected string from EntryCaller.")
|
||||
assert.Equal(t, tt.full, tt.caller.FullPath(), "Unexpected FullPath from EntryCaller.")
|
||||
assert.Equal(t, tt.short, tt.caller.TrimmedPath(), "Unexpected TrimmedPath from EntryCaller.")
|
||||
}
|
||||
}
|
||||
|
||||
func TestEventPool(t *testing.T) {
|
||||
p := NewEventPool()
|
||||
|
||||
var wg sync.WaitGroup
|
||||
for g := 0; g < 10; g++ {
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
for i := 0; i < 100; i++ {
|
||||
event := p.Get()
|
||||
assert.NotNil(t, event)
|
||||
event.Free()
|
||||
}
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
func TestEvent(t *testing.T) {
|
||||
buf := buffer.GlobalBytesPool().Get()
|
||||
defer buf.Free()
|
||||
|
||||
l, err := NewLogger(buf, "DEBUG")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.DebugEvent(context.TODO()).Byte("b", 'b').Message("DEBUG b")
|
||||
assert.Contains(t, buf.String(), "DEBUG b b=b")
|
||||
t.Log(buf.String())
|
||||
buf.Reset()
|
||||
|
||||
l.DebugEvent(context.TODO()).Bytes("bs", []byte("bs")).Message("DEBUG bs")
|
||||
l.DebugEvent(context.TODO()).Bytes("bs", []byte("bs bs")).Messagef("DEBUG %s", "bs")
|
||||
assert.Contains(t, buf.String(), "DEBUG bs bs=bs")
|
||||
assert.Contains(t, buf.String(), `DEBUG bs bs="bs bs"`)
|
||||
buf.Reset()
|
||||
|
||||
l.DebugEvent(context.TODO()).String("s", "s").Message("DEBUG s")
|
||||
l.DebugEvent(context.TODO()).String("s", "s s").Messagef("DEBUG %d", 1024)
|
||||
assert.Contains(t, buf.String(), "DEBUG s s=s")
|
||||
assert.Contains(t, buf.String(), `DEBUG 1024 s="s s"`)
|
||||
buf.Reset()
|
||||
|
||||
l.InfoEvent(context.TODO()).
|
||||
Int("i", 1).Int32("i32", int32(2)).Int64("i64", int64(3)).
|
||||
Messagef("INFO %d", 123)
|
||||
assert.Contains(t, buf.String(), "INFO 123 i=1 i32=2 i64=3")
|
||||
buf.Reset()
|
||||
|
||||
l.InfoEvent(context.TODO()).
|
||||
Uint("i", 1).Uint32("i32", uint32(2)).Uint64("i64", uint64(3)).
|
||||
Messagef("INFO %d", 123)
|
||||
assert.Contains(t, buf.String(), "INFO 123 i=1 i32=2 i64=3")
|
||||
buf.Reset()
|
||||
|
||||
l.WarnEvent(context.TODO()).
|
||||
Float32("f32", float32(32.2333)).Float64("f64", float64(64.6444)).
|
||||
Messagef("WARN %s %d.", "hello", 1024)
|
||||
assert.Contains(t, buf.String(), "WARN hello 1024. f32=32.2333 f64=64.6444")
|
||||
buf.Reset()
|
||||
|
||||
l.WarnEvent(context.TODO()).
|
||||
Bool("true", true).Bool("false", false).
|
||||
Message("WARN bool.")
|
||||
assert.Contains(t, buf.String(), "WARN bool. true=true false=false")
|
||||
buf.Reset()
|
||||
|
||||
l.ErrorEvent(context.TODO()).
|
||||
Time("time", time.Time{}, convert.RFC822).Error("error", errors.New("error message")).
|
||||
Message("Error.")
|
||||
assert.Contains(t, buf.String(), `Error. time="Mon, 01 Jan 0001 00:00:00 GMT" error="error message"`)
|
||||
buf.Reset()
|
||||
|
||||
l.DebugEvent(context.TODO()).
|
||||
String("a", "a a").
|
||||
String("b", "b'b").
|
||||
String("c", `c"c`).
|
||||
Message("yes")
|
||||
assert.Contains(t, buf.String(), `a="a a"`)
|
||||
assert.Contains(t, buf.String(), `b=b'b`)
|
||||
assert.Contains(t, buf.String(), `c="c\"c"`)
|
||||
buf.Reset()
|
||||
}
|
21
vendor/github.com/pengsrc/go-shared/log/exported_test.go
generated
vendored
21
vendor/github.com/pengsrc/go-shared/log/exported_test.go
generated
vendored
|
@ -1,21 +0,0 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestExported(t *testing.T) {
|
||||
l, err := NewTerminalLogger("DEBUG")
|
||||
assert.NoError(t, err)
|
||||
SetGlobalLogger(l)
|
||||
|
||||
c := context.Background()
|
||||
|
||||
l.Debug(c, "Singleton logger")
|
||||
assert.NotNil(t, InfoEvent(context.Background()))
|
||||
|
||||
Debugf(c, "Debug message test, hi %s", "Apple")
|
||||
}
|
45
vendor/github.com/pengsrc/go-shared/log/level_test.go
generated
vendored
45
vendor/github.com/pengsrc/go-shared/log/level_test.go
generated
vendored
|
@ -1,45 +0,0 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestParseLevel(t *testing.T) {
|
||||
var l Level
|
||||
var err error
|
||||
assert.Equal(t, l, MuteLevel)
|
||||
assert.NoError(t, err)
|
||||
|
||||
l, err = ParseLevel("FATAL")
|
||||
assert.Equal(t, l, FatalLevel)
|
||||
assert.NoError(t, err)
|
||||
l, err = ParseLevel("PANIC")
|
||||
assert.Equal(t, l, PanicLevel)
|
||||
assert.NoError(t, err)
|
||||
l, err = ParseLevel("ERROR")
|
||||
assert.Equal(t, l, ErrorLevel)
|
||||
assert.NoError(t, err)
|
||||
l, err = ParseLevel("WARN")
|
||||
assert.Equal(t, l, WarnLevel)
|
||||
assert.NoError(t, err)
|
||||
l, err = ParseLevel("INFO")
|
||||
assert.Equal(t, l, InfoLevel)
|
||||
assert.NoError(t, err)
|
||||
l, err = ParseLevel("DEBUG")
|
||||
assert.Equal(t, l, DebugLevel)
|
||||
assert.NoError(t, err)
|
||||
|
||||
l, err = ParseLevel("invalid")
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func TestLevelString(t *testing.T) {
|
||||
assert.Equal(t, "FATAL", FatalLevel.String())
|
||||
assert.Equal(t, "PANIC", PanicLevel.String())
|
||||
assert.Equal(t, "ERROR", ErrorLevel.String())
|
||||
assert.Equal(t, "WARN", WarnLevel.String())
|
||||
assert.Equal(t, "INFO", InfoLevel.String())
|
||||
assert.Equal(t, "DEBUG", DebugLevel.String())
|
||||
}
|
331
vendor/github.com/pengsrc/go-shared/log/logger_test.go
generated
vendored
331
vendor/github.com/pengsrc/go-shared/log/logger_test.go
generated
vendored
|
@ -1,331 +0,0 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
"syscall"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/pengsrc/go-shared/buffer"
|
||||
)
|
||||
|
||||
func TestSetAndGetLevel(t *testing.T) {
|
||||
l, err := NewTerminalLogger()
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.SetLevel("ERROR")
|
||||
assert.Equal(t, "ERROR", l.GetLevel())
|
||||
}
|
||||
|
||||
func TestNewLogger(t *testing.T) {
|
||||
buf := buffer.GlobalBytesPool().Get()
|
||||
defer buf.Free()
|
||||
|
||||
l, err := NewLogger(buf, "INFO")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.Debug(context.Background(), "DEBUG message")
|
||||
l.Info(context.Background(), "INFO message")
|
||||
|
||||
assert.NotContains(t, buf.String(), "DEBUG message")
|
||||
assert.Contains(t, buf.String(), "INFO message")
|
||||
buf.Reset()
|
||||
|
||||
// Test logging for context.
|
||||
type contextKey string
|
||||
const traceID contextKey = "trace_id"
|
||||
ctx := context.WithValue(nil, traceID, "60b725f10c9c85c70d97880dfe8191b3")
|
||||
|
||||
l.SetInterestContextKeys([]interface{}{traceID})
|
||||
|
||||
l.Info(ctx, "Hello World!")
|
||||
assert.Contains(t, buf.String(), "trace_id=60b725f10c9c85c70d97880dfe8191b3")
|
||||
t.Log(buf.String())
|
||||
buf.Reset()
|
||||
|
||||
l.SetCallerFlag(true)
|
||||
|
||||
l.Info(ctx, "Hello World!")
|
||||
assert.Contains(t, buf.String(), "source=log/logger_test.go")
|
||||
t.Log(buf.String())
|
||||
buf.Reset()
|
||||
|
||||
l.Infof(ctx, "Hello %s!", "World")
|
||||
assert.Contains(t, buf.String(), "source=log/logger_test.go")
|
||||
t.Log(buf.String())
|
||||
buf.Reset()
|
||||
|
||||
l.InfoEvent(ctx).Messagef("Hello %s!", "World")
|
||||
assert.Contains(t, buf.String(), "source=log/logger_test.go")
|
||||
t.Log(buf.String())
|
||||
buf.Reset()
|
||||
|
||||
l.InfoEvent(ctx).Int("count", 1024).Messagef("Hello %s!", "World")
|
||||
assert.Contains(t, buf.String(), "source=log/logger_test.go")
|
||||
t.Log(buf.String())
|
||||
buf.Reset()
|
||||
}
|
||||
|
||||
func TestNewLoggerWithError(t *testing.T) {
|
||||
buf := buffer.GlobalBytesPool().Get()
|
||||
errBuf := buffer.GlobalBytesPool().Get()
|
||||
defer buf.Free()
|
||||
defer errBuf.Free()
|
||||
|
||||
l, err := NewLoggerWithError(buf, errBuf, "INFO")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.Debug(context.Background(), "DEBUG message")
|
||||
l.Info(context.Background(), "INFO message")
|
||||
l.Error(context.Background(), "ERROR message")
|
||||
|
||||
assert.NotContains(t, buf.String(), "DEBUG message")
|
||||
assert.Contains(t, buf.String(), "INFO message")
|
||||
assert.Contains(t, buf.String(), "ERROR message")
|
||||
|
||||
assert.NotContains(t, errBuf.String(), "DEBUG message")
|
||||
assert.NotContains(t, errBuf.String(), "INFO message")
|
||||
assert.Contains(t, errBuf.String(), "ERROR message")
|
||||
}
|
||||
|
||||
func TestNewFileLogger(t *testing.T) {
|
||||
t.Skip()
|
||||
|
||||
lFile := path.Join(os.TempDir(), "test.log")
|
||||
defer os.Remove(lFile)
|
||||
|
||||
// Create logger failed.
|
||||
_, err := NewLoggerWithError(nil, nil, "DEBUG")
|
||||
assert.Error(t, err)
|
||||
_, err = NewLoggerWithError(ioutil.Discard, ioutil.Discard, "INVALID")
|
||||
assert.Error(t, err)
|
||||
|
||||
// Create logger success.
|
||||
l, err := NewFileLogger(lFile, "INFO")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.Debug(context.Background(), "file - DEBUG message")
|
||||
l.Info(context.Background(), "file - INFO message")
|
||||
l.Warn(context.Background(), "file - WARN message")
|
||||
l.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err := ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 4, len(strings.Split(string(data), "\n")))
|
||||
|
||||
// Move log file.
|
||||
movedLFile := fmt.Sprintf(`%s.move`, lFile)
|
||||
err = os.Rename(lFile, movedLFile)
|
||||
assert.NoError(t, err)
|
||||
defer os.Remove(movedLFile)
|
||||
|
||||
l.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err = ioutil.ReadFile(movedLFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 5, len(strings.Split(string(data), "\n")))
|
||||
|
||||
// Reopen.
|
||||
syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
|
||||
time.Sleep(1 * time.Second)
|
||||
|
||||
l.Warn(context.Background(), "file - WARN message")
|
||||
l.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err = ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 3, len(strings.Split(string(data), "\n")))
|
||||
}
|
||||
|
||||
func TestNewFileLoggerWithError(t *testing.T) {
|
||||
t.Skip()
|
||||
|
||||
lFile := path.Join(os.TempDir(), "test.log")
|
||||
errLFile := path.Join(os.TempDir(), "test.log.wf")
|
||||
defer os.Remove(lFile)
|
||||
defer os.Remove(errLFile)
|
||||
|
||||
// Create logger failed.
|
||||
_, err := NewFileLoggerWithError("/not/exists/dir", "/not/exists/dir", "DEBUG")
|
||||
assert.Error(t, err)
|
||||
_, err = NewFileLoggerWithError(lFile, "/not/exists/dir", "DEBUG")
|
||||
assert.Error(t, err)
|
||||
_, err = NewFileLoggerWithError(os.TempDir(), os.TempDir(), "DEBUG")
|
||||
assert.Error(t, err)
|
||||
_, err = NewFileLoggerWithError(lFile, os.TempDir(), "DEBUG")
|
||||
assert.Error(t, err)
|
||||
|
||||
// Create logger success.
|
||||
l, err := NewFileLoggerWithError(lFile, errLFile, "DEBUG")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.Debug(context.Background(), "file - DEBUG message")
|
||||
l.Info(context.Background(), "file - INFO message")
|
||||
l.Warn(context.Background(), "file - WARN message")
|
||||
l.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err := ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 5, len(strings.Split(string(data), "\n")))
|
||||
|
||||
errLog, err := ioutil.ReadFile(errLFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 3, len(strings.Split(string(errLog), "\n")))
|
||||
|
||||
// Move data file.
|
||||
movedLogFile := fmt.Sprintf(`%s.move`, lFile)
|
||||
err = os.Rename(lFile, movedLogFile)
|
||||
assert.NoError(t, err)
|
||||
defer os.Remove(movedLogFile)
|
||||
|
||||
movedErrLogFile := fmt.Sprintf(`%s.move`, errLFile)
|
||||
err = os.Rename(errLFile, movedErrLogFile)
|
||||
assert.NoError(t, err)
|
||||
defer os.Remove(movedErrLogFile)
|
||||
|
||||
l.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err = ioutil.ReadFile(movedLogFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 6, len(strings.Split(string(data), "\n")))
|
||||
|
||||
errLog, err = ioutil.ReadFile(movedErrLogFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 4, len(strings.Split(string(errLog), "\n")))
|
||||
|
||||
// Reopen.
|
||||
syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
|
||||
time.Sleep(1 * time.Second)
|
||||
|
||||
l.Warn(context.Background(), "file - WARN message")
|
||||
l.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err = ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 3, len(strings.Split(string(data), "\n")))
|
||||
|
||||
errLog, err = ioutil.ReadFile(errLFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 3, len(strings.Split(string(errLog), "\n")))
|
||||
}
|
||||
|
||||
func TestBufferedFileLogger(t *testing.T) {
|
||||
lFile := path.Join(os.TempDir(), "test.log")
|
||||
defer os.Remove(lFile)
|
||||
|
||||
l, err := NewBufferedFileLogger(lFile, 1, "DEBUG")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.Debug(context.Background(), "file - DEBUG message")
|
||||
l.Info(context.Background(), "file - INFO message")
|
||||
l.Warn(context.Background(), "file - WARN message")
|
||||
l.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err := ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 1, len(strings.Split(string(data), "\n")))
|
||||
|
||||
// Wait timeout.
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
data, err = ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 5, len(strings.Split(string(data), "\n")))
|
||||
}
|
||||
|
||||
func TestBufferedFileLoggerWithError(t *testing.T) {
|
||||
lFile := path.Join(os.TempDir(), "test.log")
|
||||
errLFile := path.Join(os.TempDir(), "test.log.wf")
|
||||
defer os.Remove(lFile)
|
||||
defer os.Remove(errLFile)
|
||||
|
||||
// Create logger failed.
|
||||
_, err := NewBufferedFileLoggerWithError("/not/exists/dir", "/not/exists/dir", 0, "DEBUG")
|
||||
assert.Error(t, err)
|
||||
_, err = NewBufferedFileLoggerWithError(lFile, "/not/exists/dir", 0, "DEBUG")
|
||||
assert.Error(t, err)
|
||||
_, err = NewBufferedFileLoggerWithError(os.TempDir(), os.TempDir(), 0, "DEBUG")
|
||||
assert.Error(t, err)
|
||||
_, err = NewBufferedFileLoggerWithError(lFile, os.TempDir(), 0, "DEBUG")
|
||||
assert.Error(t, err)
|
||||
|
||||
// Create logger success.
|
||||
errL, err := NewBufferedFileLoggerWithError(lFile, errLFile, 1, "DEBUG")
|
||||
assert.NoError(t, err)
|
||||
|
||||
errL.Debug(context.Background(), "file - DEBUG message")
|
||||
errL.Info(context.Background(), "file - INFO message")
|
||||
errL.Warn(context.Background(), "file - WARN message")
|
||||
errL.Error(context.Background(), "file - ERROR message")
|
||||
|
||||
data, err := ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 1, len(strings.Split(string(data), "\n")))
|
||||
|
||||
errData, err := ioutil.ReadFile(errLFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 1, len(strings.Split(string(errData), "\n")))
|
||||
|
||||
// Flush log.
|
||||
errL.Flush()
|
||||
|
||||
data, err = ioutil.ReadFile(lFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 5, len(strings.Split(string(data), "\n")))
|
||||
|
||||
errData, err = ioutil.ReadFile(errLFile)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, 3, len(strings.Split(string(errData), "\n")))
|
||||
|
||||
// Wait timeout to improve test coverage.
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
// Reopen using signal to improve test coverage.
|
||||
syscall.Kill(syscall.Getpid(), syscall.SIGHUP)
|
||||
}
|
||||
|
||||
func TestTerminalLogger(t *testing.T) {
|
||||
l, err := NewTerminalLogger("DEBUG")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.Debug(context.Background(), "terminal - DEBUG message")
|
||||
l.Info(context.Background(), "terminal - INFO message")
|
||||
l.Warn(context.Background(), "terminal - WARN message")
|
||||
l.Error(context.Background(), "terminal - ERROR message")
|
||||
|
||||
l.Debugf(context.Background(), "terminal - DEBUG message - %d", time.Now().Unix())
|
||||
l.Infof(context.Background(), "terminal - INFO message - %d", time.Now().Unix())
|
||||
l.Warnf(context.Background(), "terminal - WARN message - %d", time.Now().Unix())
|
||||
l.Errorf(context.Background(), "terminal - ERROR message - %d", time.Now().Unix())
|
||||
}
|
||||
|
||||
func TestBufferedTerminalLogger(t *testing.T) {
|
||||
l, err := NewBufferedTerminalLogger("DEBUG")
|
||||
assert.NoError(t, err)
|
||||
|
||||
l.Debug(context.Background(), "terminal - DEBUG message")
|
||||
l.Info(context.Background(), "terminal - INFO message")
|
||||
l.Warn(context.Background(), "terminal - WARN message")
|
||||
l.Error(context.Background(), "terminal - ERROR message")
|
||||
|
||||
l.Flush()
|
||||
}
|
||||
|
||||
func BenchmarkLogger(b *testing.B) {
|
||||
l, err := NewLogger(ioutil.Discard, "DEBUG")
|
||||
assert.NoError(b, err)
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
l.DebugEvent(ctx).String("key", "value").Messagef("Hello %s!", "World")
|
||||
}
|
||||
}
|
36
vendor/github.com/pengsrc/go-shared/log/writer_test.go
generated
vendored
36
vendor/github.com/pengsrc/go-shared/log/writer_test.go
generated
vendored
|
@ -1,36 +0,0 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestStandardWriter(t *testing.T) {
|
||||
var w io.Writer
|
||||
w = &StandardWriter{
|
||||
w: os.Stdout, ew: os.Stderr,
|
||||
dl: MuteLevel, pid: os.Getpid(),
|
||||
}
|
||||
|
||||
lw, ok := w.(LevelWriter)
|
||||
assert.True(t, ok)
|
||||
|
||||
_, ok = w.(Flusher)
|
||||
assert.True(t, ok)
|
||||
|
||||
_, err := lw.Write([]byte("Hello World!"))
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func BenchmarkStandardWriter(b *testing.B) {
|
||||
lw := &StandardWriter{w: ioutil.Discard, ew: ioutil.Discard}
|
||||
|
||||
b.ResetTimer()
|
||||
for i := 0; i < b.N; i++ {
|
||||
lw.Write([]byte("Hello World!"))
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue