From b664d68a7c0f446aaf5a26c83e9e1aed522cb187 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Mon, 22 Jun 2020 17:28:12 +0200 Subject: [PATCH] internal/rendertest: tolerate lack of headless suppport Fixes the builders. Signed-off-by: Elias Naur --- internal/rendertest/bench_test.go | 5 +---- internal/rendertest/util_test.go | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/internal/rendertest/bench_test.go b/internal/rendertest/bench_test.go index 3e7e47df..cd5804eb 100644 --- a/internal/rendertest/bench_test.go +++ b/internal/rendertest/bench_test.go @@ -25,10 +25,7 @@ var ( func setupBenchmark(b *testing.B) (layout.Context, *headless.Window, *material.Theme) { sz := image.Point{X: 1024, Y: 1200} - w, err := headless.NewWindow(sz.X, sz.Y) - if err != nil { - b.Error(err) - } + w := newWindow(b, sz.X, sz.Y) ops := new(op.Ops) gtx := layout.Context{ Ops: ops, diff --git a/internal/rendertest/util_test.go b/internal/rendertest/util_test.go index 46d10177..99643f92 100644 --- a/internal/rendertest/util_test.go +++ b/internal/rendertest/util_test.go @@ -39,12 +39,9 @@ func init() { squares = paint.NewImageOp(im) } -func drawImage(size int, ops *op.Ops, draw func(o *op.Ops)) (im *image.RGBA, err error) { +func drawImage(t *testing.T, size int, ops *op.Ops, draw func(o *op.Ops)) (im *image.RGBA, err error) { sz := image.Point{X: size, Y: size} - w, err := headless.NewWindow(sz.X, sz.Y) - if err != nil { - return im, err - } + w := newWindow(t, sz.X, sz.Y) draw(ops) w.Frame(ops) return w.Screenshot() @@ -59,7 +56,7 @@ func run(t *testing.T, f func(o *op.Ops), c func(r result)) { ops := new(op.Ops) for i := 0; i < 3; i++ { ops.Reset() - img, err = drawImage(128, ops, f) + img, err = drawImage(t, 128, ops, f) if err != nil { t.Error("error rendering:", err) return @@ -93,11 +90,7 @@ func multiRun(t *testing.T, frames ...frameT) { var img *image.RGBA var err error sz := image.Point{X: 128, Y: 128} - w, err := headless.NewWindow(sz.X, sz.Y) - if err != nil { - t.Error("error creating window:", err) - t.FailNow() - } + w := newWindow(t, sz.X, sz.Y) ops := new(op.Ops) for i := range frames { ops.Reset() @@ -198,3 +191,11 @@ func saveImage(file string, img image.Image) error { } return ioutil.WriteFile(file, buf.Bytes(), 0666) } + +func newWindow(t testing.TB, width, height int) *headless.Window { + w, err := headless.NewWindow(width, height) + if err != nil { + t.Skipf("failed to create headless window, skipping: %v", err) + } + return w +}