Initial commit
This commit is contained in:
commit
3cbefefec5
5 changed files with 279 additions and 0 deletions
92
log_test.go
Normal file
92
log_test.go
Normal file
|
@ -0,0 +1,92 @@
|
|||
package flog
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestGetOutput(t *testing.T) {
|
||||
assert.Equal(t, os.Stdout, getOutput())
|
||||
|
||||
b := bytes.Buffer{}
|
||||
Output = &b
|
||||
assert.Equal(t, &b, getOutput())
|
||||
|
||||
Output = nil
|
||||
}
|
||||
|
||||
func TestLogFormat(t *testing.T) {
|
||||
b := bytes.Buffer{}
|
||||
MinLevel, Output = LevelDebug, &b
|
||||
|
||||
Debug(`Testtt`)
|
||||
assert.True(t, strings.HasPrefix(b.String(), `debug [`))
|
||||
b.Reset()
|
||||
|
||||
Info(`Testtt`)
|
||||
assert.True(t, strings.HasPrefix(b.String(), `info [`))
|
||||
|
||||
MinLevel, Output = LevelInfo, nil
|
||||
}
|
||||
|
||||
func TestLogLevel(t *testing.T) {
|
||||
b := bytes.Buffer{}
|
||||
MinLevel, Output = LevelWarning, &b
|
||||
|
||||
Info(`Testtt`)
|
||||
assert.True(t, b.Len() == 0)
|
||||
b.Reset()
|
||||
|
||||
Warning(`Testtt`)
|
||||
assert.False(t, b.Len() == 0)
|
||||
b.Reset()
|
||||
|
||||
MinLevel = LevelError
|
||||
|
||||
Warning(`Testtt`)
|
||||
assert.True(t, b.Len() == 0)
|
||||
b.Reset()
|
||||
|
||||
MinLevel, Output = LevelInfo, nil
|
||||
}
|
||||
|
||||
func TestStackTrace(t *testing.T) {
|
||||
b := bytes.Buffer{}
|
||||
Output = &b
|
||||
|
||||
Error(`Testtt`)
|
||||
checkStackTrace(t, &b, `git.fuyu.moe/Fuyu/flog.TestStackTrace`)
|
||||
|
||||
b.Reset()
|
||||
|
||||
func() {
|
||||
defer func() {
|
||||
v := recover()
|
||||
if v != nil {
|
||||
Critical(v)
|
||||
}
|
||||
}()
|
||||
panic(`Testtt`)
|
||||
}()
|
||||
checkStackTrace(t, &b, `git.fuyu.moe/Fuyu/flog.TestStackTrace.func1`)
|
||||
|
||||
Output = nil
|
||||
}
|
||||
|
||||
func checkStackTrace(t *testing.T, b *bytes.Buffer, f string) {
|
||||
rdr := bufio.NewReader(b)
|
||||
_, _ = rdr.ReadBytes('\n')
|
||||
|
||||
data, err := rdr.ReadBytes('\n')
|
||||
if err != nil {
|
||||
t.Fatal(`Got error while reading:`, err)
|
||||
}
|
||||
|
||||
parts := strings.Split(strings.TrimSpace(string(data)), ` `)
|
||||
assert.Equal(t, f, parts[0])
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue