47 lines
970 B
Go
47 lines
970 B
Go
|
package common
|
||
|
|
||
|
import (
|
||
|
"regexp"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
type TestWriter struct {
|
||
|
str string
|
||
|
}
|
||
|
|
||
|
func (s *TestWriter) WriteString(str2 string) (int, error) {
|
||
|
s.str += str2
|
||
|
return len(s.str), nil
|
||
|
}
|
||
|
|
||
|
func TestLogging(t *testing.T) {
|
||
|
t.Run("basic logging", func(t *testing.T) {
|
||
|
var strWriter, errWriter TestWriter
|
||
|
|
||
|
if len(strWriter.str) != 0 || len(errWriter.str) != 0 {
|
||
|
t.Fatal("non-null empty logging?")
|
||
|
}
|
||
|
|
||
|
logger := CreateStdoutLogger(&strWriter, &errWriter)
|
||
|
logger.LogError("%d", 100)
|
||
|
logger.Log("OKA %d Done", 77)
|
||
|
logger.Log("Another line")
|
||
|
|
||
|
const prefixMatch = `\[\d+\] \[[^\]]+\]: `
|
||
|
|
||
|
if ok, err := regexp.MatchString("^"+prefixMatch+"100\n$", errWriter.str); !ok {
|
||
|
if err != nil {
|
||
|
t.Logf("err: %v", err)
|
||
|
}
|
||
|
t.Fatal(errWriter)
|
||
|
}
|
||
|
if ok, err := regexp.MatchString("^"+prefixMatch+"OKA 77 Done\n"+prefixMatch+"Another line\n$", strWriter.str); !ok {
|
||
|
if err != nil {
|
||
|
t.Logf("err: %v", err)
|
||
|
}
|
||
|
t.Fatal(strWriter.str)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
|