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())
|
|
}
|
|
}
|
|
}
|