72 lines
975 B
Go
Executable File
72 lines
975 B
Go
Executable File
package logb
|
|
|
|
import (
|
|
"sync"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestNewLevel(t *testing.T) {
|
|
NewLevel()
|
|
}
|
|
|
|
func TestConsts(t *testing.T) {
|
|
for _, c := range []int{
|
|
cInfo,
|
|
cWarn,
|
|
cError,
|
|
cDebug,
|
|
cVerbose,
|
|
} {
|
|
l := Level{Level: c}
|
|
if l.String() == "undefined" {
|
|
t.Error(l)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestLevelLock(t *testing.T) {
|
|
l := NewLevel()
|
|
doLock := &sync.WaitGroup{}
|
|
doLock.Add(1)
|
|
didLock := make(chan struct{})
|
|
|
|
go func() {
|
|
doLock.Wait()
|
|
l.Lock.Lock()
|
|
didLock <- struct{}{}
|
|
}()
|
|
|
|
l.Lock.Lock()
|
|
doLock.Done()
|
|
select {
|
|
case <-didLock:
|
|
t.Error("did a lock while locked")
|
|
case <-time.After(time.Millisecond * 50):
|
|
l.Lock.Unlock()
|
|
<-didLock
|
|
}
|
|
}
|
|
|
|
func TestLevelShould(t *testing.T) {
|
|
levels := []Level{
|
|
ERROR,
|
|
WARN,
|
|
INFO,
|
|
DEBUG,
|
|
VERBOSE,
|
|
}
|
|
for i := range levels {
|
|
okayed := 0
|
|
for j := range levels {
|
|
should := levels[i].Should(levels[j])
|
|
if should {
|
|
okayed += 1
|
|
}
|
|
}
|
|
if okayed != i+1 {
|
|
t.Error(levels[i])
|
|
}
|
|
}
|
|
}
|