diff --git a/gpu/internal/rendertest/bench_test.go b/gpu/internal/rendertest/bench_test.go index 10fe0ccc..f28e5750 100644 --- a/gpu/internal/rendertest/bench_test.go +++ b/gpu/internal/rendertest/bench_test.go @@ -50,9 +50,7 @@ func finishBenchmark(b *testing.B, w *headless.Window) { if err != nil { b.Error(err) } - if err := saveImage(b.Name()+".png", img); err != nil { - b.Error(err) - } + saveImage(b, b.Name()+".png", img) } } diff --git a/gpu/internal/rendertest/util_test.go b/gpu/internal/rendertest/util_test.go index 092eed03..f6eac9b5 100644 --- a/gpu/internal/rendertest/util_test.go +++ b/gpu/internal/rendertest/util_test.go @@ -85,18 +85,10 @@ func run(t *testing.T, f func(o *op.Ops), c func(r result)) { // Check for a reference image and make sure it is identical. if !verifyRef(t, img, 0) { name := fmt.Sprintf("%s-%d-bad.png", t.Name(), i) - if err := saveImage(name, img); err != nil { - t.Error(err) - } + saveImage(t, name, img) } c(result{t: t, img: img}) } - - if *dumpImages { - if err := saveImage(t.Name()+".png", img); err != nil { - t.Error(err) - } - } } func frame(f func(o *op.Ops), c func(r result)) frameT { @@ -135,14 +127,12 @@ func multiRun(t *testing.T, frames ...frameT) { if frames[i].c != nil { frames[i].c(result{t: t, img: img}) } - if *dumpImages || !ok { + if !ok { name := t.Name() + ".png" if i != 0 { name = t.Name() + "_" + strconv.Itoa(i) + ".png" } - if err := saveImage(name, img); err != nil { - t.Error(err) - } + saveImage(t, name, img) } } @@ -257,7 +247,10 @@ type result struct { img *image.RGBA } -func saveImage(file string, img *image.RGBA) error { +func saveImage(t testing.TB, file string, img *image.RGBA) { + if !*dumpImages { + return + } // Only NRGBA images are losslessly encoded by png.Encode. nrgba := image.NewNRGBA(img.Bounds()) bnd := img.Bounds() @@ -268,9 +261,13 @@ func saveImage(file string, img *image.RGBA) error { } var buf bytes.Buffer if err := png.Encode(&buf, nrgba); err != nil { - return err + t.Error(err) + return + } + if err := ioutil.WriteFile(file, buf.Bytes(), 0666); err != nil { + t.Error(err) + return } - return ioutil.WriteFile(file, buf.Bytes(), 0666) } func newWindow(t testing.TB, width, height int) *headless.Window {