/
memlog_test.go
51 lines (47 loc) · 1.23 KB
/
memlog_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package logging
import (
"testing"
"time"
)
func TestMemlogger(t *testing.T) {
ml := NewMemoryLogger(10, DebugLevel)
if len(ml.Entries()) != 0 {
t.Fatal("Expected 0 elements")
}
for i := 0; i < 100; i++ {
ml.Write([]byte("main.go:57: This is a log entry:with colon:"))
}
if len(ml.Entries()) != ml.maxEntries {
t.Fatal("Expected ", ml.maxEntries, " but got ", len(ml.Entries()))
}
ml = NewMemoryLogger(0, ErrorLevel)
for i := 0; i < 100; i++ {
ml.Write([]byte("main.go:57: This is a log entry:with colon:"))
}
}
func TestMemloggerMerge(t *testing.T) {
m1 := NewMemoryLogger(10, DebugLevel)
m2 := NewMemoryLogger(8, DebugLevel)
m3 := NewMemoryLogger(12, DebugLevel)
m4 := NewMemoryLogger(10, DebugLevel)
m1.Merge(m2, m3, m4)
for i := 0; i < 12; i++ {
m1.Write([]byte("Log entry"))
m2.Write([]byte("Log entry"))
m3.Write([]byte("Log entry"))
}
entries := m1.Merge(m2, m3, m4)
prev := time.Now().Add(-time.Second)
for _, v := range entries {
if v.Time.Before(prev) {
t.Fatal("Element should not be before previous")
}
prev = v.Time
}
}
func BenchmarkMemlogger(b *testing.B) {
ml := NewMemoryLogger(1000, WarningLevel)
for i := 0; i < b.N; i++ {
ml.Write([]byte("main.go:57: This is a log entry:with:colon"))
}
}