38 lines
983 B
Go
38 lines
983 B
Go
|
package log
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"regexp"
|
||
|
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestLogFatalf(t *testing.T) {
|
||
|
var output *bytes.Buffer
|
||
|
|
||
|
tests := []struct {
|
||
|
Level priority
|
||
|
Format string
|
||
|
Values []interface{}
|
||
|
ExpectedPattern string
|
||
|
}{
|
||
|
{fatal, "%d + %d = %d", []interface{}{1, 1, 2}, "\\[fatal\\] testing.go:\\d+ 1 \\+ 1 = 2"},
|
||
|
{error, "%d + %d = %d", []interface{}{1, 1, 2}, "\\[error\\] testing.go:\\d+ 1 \\+ 1 = 2"},
|
||
|
{info, "%d + %d = %d", []interface{}{1, 1, 2}, "\\[info\\] 1 \\+ 1 = 2"},
|
||
|
{debug, "%d + %d = %d", []interface{}{1, 1, 2}, "\\[debug\\] testing.go:\\d+ 1 \\+ 1 = 2"},
|
||
|
}
|
||
|
|
||
|
for i, test := range tests {
|
||
|
output = &bytes.Buffer{}
|
||
|
logf(output, test.Level, test.Format, test.Values...)
|
||
|
|
||
|
expected := regexp.MustCompile(test.ExpectedPattern)
|
||
|
if !expected.MatchString(output.String()) {
|
||
|
t.Errorf("[%d] Log output does not match expected pattern:\n\tExpected: %s\n\tOutput: %s",
|
||
|
i,
|
||
|
expected.String(),
|
||
|
output.String())
|
||
|
}
|
||
|
}
|
||
|
}
|