diff --git a/cmd/gogio/js_test.go b/cmd/gogio/js_test.go index 2c91fc18..50f18dec 100644 --- a/cmd/gogio/js_test.go +++ b/cmd/gogio/js_test.go @@ -66,7 +66,10 @@ func TestJSOnChrome(t *testing.T) { actx, cancel := chromedp.NewExecAllocator(context.Background(), opts...) defer cancel() - ctx, cancel := chromedp.NewContext(actx) + ctx, cancel := chromedp.NewContext(actx, + // Send all logf/errf calls to t.Logf + chromedp.WithLogf(t.Logf), + ) defer cancel() if err := chromedp.Run(ctx); err != nil { diff --git a/cmd/gogio/x11_test.go b/cmd/gogio/x11_test.go index 9d26987d..561d1e4c 100644 --- a/cmd/gogio/x11_test.go +++ b/cmd/gogio/x11_test.go @@ -136,10 +136,8 @@ func TestX11(t *testing.T) { // Finally, run our tests. A connection to the X server is used to // interact with it. { - if !testing.Verbose() { - xgb.Logger.SetOutput(ioutil.Discard) - xgbutil.Logger.SetOutput(ioutil.Discard) - } + xgb.Logger.SetOutput(testLogWriter{t}) + xgbutil.Logger.SetOutput(testLogWriter{t}) xu, err := xgbutil.NewConnDisplay(display) if err != nil { t.Fatal(err) @@ -174,3 +172,18 @@ func TestX11(t *testing.T) { wantColor(t, img, 595, 595, 0xdede, 0xadad, 0xbebe) } } + +// testLogWriter is a bit of a hack to redirect libraries that use a *log.Logger +// variable to instead send their logs to t.Logf. +// +// Since *log.Logger isn't an interface and can only take an io.Writer, all we +// can do is implement an io.Writer that sends its output to t.Logf. We end up +// with duplicate log prefixes, but that doesn't seem so bad. +type testLogWriter struct { + t *testing.T +} + +func (w testLogWriter) Write(p []byte) (n int, err error) { + w.t.Logf("%s", p) + return len(p), nil +}