| Index: src/pkg/log/log_test.go |
| =================================================================== |
| --- a/src/pkg/log/log_test.go |
| +++ b/src/pkg/log/log_test.go |
| @@ -11,6 +11,7 @@ |
| "os"; |
| "regexp"; |
| "testing"; |
| + "fmt"; |
| ) |
| const ( |
| @@ -28,6 +29,8 @@ |
| pattern string; // regexp that log output must match; we add ^ and expected_text$ always |
| } |
| +func (t *tester) Log() string { return fmt.Sprintf("flag: %d", t.flag) } |
| + |
| var tests = []tester{ |
| // individual pieces: |
| tester{0, "", ""}, |
| @@ -74,9 +77,36 @@ |
| } |
| } |
| +func testLogObj(t *testing.T) { |
| + test := &tester{9, "X", "X"}; |
| + r, w, err1 := os.Pipe(); |
| + l := New(w, nil, "", Lok|Ldate|Ltime); |
| + if err1 != nil { |
| + t.Fatal("pipe", err1) |
| + } |
| + defer r.Close(); |
| + defer w.Close(); |
| + buf := bufio.NewReader(r); |
| + l.LogObj(test); |
| + line, readerr := buf.ReadString('\n'); |
| + fmt.Printf("here"); |
| + if readerr != nil { |
| + t.Fatal("logable test error", readerr) |
| + } |
| + matched, compErr := regexp.MatchString(Rdate+" "+Rtime+" "+`flag: [0-9]`, line); |
| + if compErr != nil { |
| + t.Fatal("pattern did not compile: ", compErr) |
| + } |
| + if !matched { |
| + t.Fatal("logable test") |
| + } |
| +} |
| + |
| func TestAllLog(t *testing.T) { |
| for _, testcase := range tests { |
| testLog(t, testcase.flag, testcase.prefix, testcase.pattern, false); |
| testLog(t, testcase.flag, testcase.prefix, testcase.pattern, true); |
| } |
| + |
| + testLogObj(t); |
| } |