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