From 90fb2d9ef90a71ea1c6fa96ff794b9f5c3f86a22 Mon Sep 17 00:00:00 2001 From: zelig Date: Fri, 6 Feb 2015 14:44:10 +0100 Subject: [PATCH] add test subpkg for testing utils --- bzz/test/logger.go | 78 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 bzz/test/logger.go diff --git a/bzz/test/logger.go b/bzz/test/logger.go new file mode 100644 index 0000000000..8b776e0b5c --- /dev/null +++ b/bzz/test/logger.go @@ -0,0 +1,78 @@ +package test + +import ( + "log" + "os" + "sync" + "testing" + + "github.com/ethereum/go-ethereum/logger" +) + +var once sync.Once + +/* usage: +func TestFunc(t *testing.T) { + test.LogInit() + // test +} +*/ +func LogInit() { + once.Do(func() { + var logsys = logger.NewStdLogSystem(os.Stdout, log.LstdFlags, logger.LogLevel(logger.DebugDetailLevel)) + logger.AddLogSystem(logsys) + }) +} + +type testLogger struct{ t *testing.T } + +/* usage: +func TestFunc(t *testing.T) { + defer test.Testlog.Detach() + // test +} +*/ +func Testlog(t *testing.T) testLogger { + logger.Reset() + l := testLogger{t} + logger.AddLogSystem(l) + return l +} + +func (testLogger) GetLogLevel() logger.LogLevel { return logger.DebugLevel } +func (testLogger) SetLogLevel(logger.LogLevel) {} + +func (l testLogger) LogPrint(level logger.LogLevel, msg string) { + l.t.Logf("%s", msg) +} + +func (testLogger) Detach() { + logger.Flush() + logger.Reset() +} + +type benchLogger struct{ b *testing.B } + +/* usage: +func BenchmarkFunc(b *testing.B) { + defer test.Benchlog.Detach() + // test +} +*/ +func Benchlog(b *testing.B) benchLogger { + logger.Reset() + l := benchLogger{b} + logger.AddLogSystem(l) + return l +} + +func (benchLogger) GetLogLevel() logger.LogLevel { return logger.Silence } + +func (benchLogger) SetLogLevel(logger.LogLevel) {} +func (l benchLogger) LogPrint(level logger.LogLevel, msg string) { + l.b.Logf("%s", msg) +} +func (benchLogger) Detach() { + logger.Flush() + logger.Reset() +}