Customization of the original library will continue from here to make it leaner and more suited for general use in MimirTech projects.
118 lines
2.6 KiB
Go
118 lines
2.6 KiB
Go
// Copyright 2013, Örjan Persson. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package logging
|
|
|
|
import (
|
|
"strconv"
|
|
"testing"
|
|
)
|
|
|
|
// TODO share more code between these tests
|
|
func MemoryRecordN(b *MemoryBackend, n int) *Record {
|
|
node := b.Head()
|
|
for i := 0; i < n; i++ {
|
|
if node == nil {
|
|
break
|
|
}
|
|
node = node.Next()
|
|
}
|
|
if node == nil {
|
|
return nil
|
|
}
|
|
return node.Record
|
|
}
|
|
|
|
func ChannelMemoryRecordN(b *ChannelMemoryBackend, n int) *Record {
|
|
b.Flush()
|
|
node := b.Head()
|
|
for i := 0; i < n; i++ {
|
|
if node == nil {
|
|
break
|
|
}
|
|
node = node.Next()
|
|
}
|
|
if node == nil {
|
|
return nil
|
|
}
|
|
return node.Record
|
|
}
|
|
|
|
func TestMemoryBackend(t *testing.T) {
|
|
backend := NewMemoryBackend(8)
|
|
SetBackend(backend)
|
|
|
|
log := MustGetLogger("test")
|
|
|
|
if nil != MemoryRecordN(backend, 0) || 0 != backend.size {
|
|
t.Errorf("memory level: %d", backend.size)
|
|
}
|
|
|
|
// Run 13 times, the resulting vector should be [5..12]
|
|
for i := 0; i < 13; i++ {
|
|
log.Infof("%d", i)
|
|
}
|
|
|
|
if 8 != backend.size {
|
|
t.Errorf("record length: %d", backend.size)
|
|
}
|
|
record := MemoryRecordN(backend, 0)
|
|
if "5" != record.Formatted(0) {
|
|
t.Errorf("unexpected start: %s", record.Formatted(0))
|
|
}
|
|
for i := 0; i < 8; i++ {
|
|
record = MemoryRecordN(backend, i)
|
|
if strconv.Itoa(i+5) != record.Formatted(0) {
|
|
t.Errorf("unexpected record: %v", record.Formatted(0))
|
|
}
|
|
}
|
|
record = MemoryRecordN(backend, 7)
|
|
if "12" != record.Formatted(0) {
|
|
t.Errorf("unexpected end: %s", record.Formatted(0))
|
|
}
|
|
record = MemoryRecordN(backend, 8)
|
|
if nil != record {
|
|
t.Errorf("unexpected eof: %s", record.Formatted(0))
|
|
}
|
|
}
|
|
|
|
func TestChannelMemoryBackend(t *testing.T) {
|
|
backend := NewChannelMemoryBackend(8)
|
|
SetBackend(backend)
|
|
|
|
log := MustGetLogger("test")
|
|
|
|
if nil != ChannelMemoryRecordN(backend, 0) || 0 != backend.size {
|
|
t.Errorf("memory level: %d", backend.size)
|
|
}
|
|
|
|
// Run 13 times, the resulting vector should be [5..12]
|
|
for i := 0; i < 13; i++ {
|
|
log.Infof("%d", i)
|
|
}
|
|
backend.Flush()
|
|
|
|
if 8 != backend.size {
|
|
t.Errorf("record length: %d", backend.size)
|
|
}
|
|
record := ChannelMemoryRecordN(backend, 0)
|
|
if "5" != record.Formatted(0) {
|
|
t.Errorf("unexpected start: %s", record.Formatted(0))
|
|
}
|
|
for i := 0; i < 8; i++ {
|
|
record = ChannelMemoryRecordN(backend, i)
|
|
if strconv.Itoa(i+5) != record.Formatted(0) {
|
|
t.Errorf("unexpected record: %v", record.Formatted(0))
|
|
}
|
|
}
|
|
record = ChannelMemoryRecordN(backend, 7)
|
|
if "12" != record.Formatted(0) {
|
|
t.Errorf("unexpected end: %s", record.Formatted(0))
|
|
}
|
|
record = ChannelMemoryRecordN(backend, 8)
|
|
if nil != record {
|
|
t.Errorf("unexpected eof: %s", record.Formatted(0))
|
|
}
|
|
}
|