...
1 package cmdlog
2
3 import (
4 "bytes"
5 "fmt"
6 "log"
7 "os"
8 "testing"
9 "time"
10
11 "oss.terrastruct.com/util-go/assert"
12 "oss.terrastruct.com/util-go/xos"
13 "oss.terrastruct.com/util-go/xterm"
14 )
15
16 func init() {
17 timeNow = func() time.Time {
18 return time.Date(2000, time.January, 1, 1, 1, 1, 1, time.UTC)
19 }
20 }
21
22 func TestStdlog(t *testing.T) {
23 pw, ok := log.Default().Writer().(prefixWriter)
24 if !ok {
25 t.Fatalf("unexpected log.Default().Writer(): %T", log.Default().Writer())
26 }
27 tsw, ok := pw.w.(*tsWriter)
28 if !ok {
29 t.Fatalf("unexpected pw.w: %T", pw.w)
30 }
31 b := &bytes.Buffer{}
32 ow := tsw.w
33 tsw.w = b
34 defer func() {
35 tsw.w = ow
36 }()
37
38 log.Print("testing stdlog")
39 exp := fmt.Sprintf("[01:01:01] %s testing stdlog\n",
40 xterm.Prefix(xos.NewEnv(os.Environ()), os.Stderr, xterm.Blue, "stdlog"),
41 )
42 assert.String(t, exp, b.String())
43 }
44
View as plain text