diff --git a/gui/gui.go b/gui/gui.go index 00a32fc..adaa7d0 100644 --- a/gui/gui.go +++ b/gui/gui.go @@ -808,24 +808,27 @@ func (gui *GUI) SwapBuffers() { gui.window.SwapBuffers() } -func (gui *GUI) Screenshot(path string) { +func (gui *GUI) Screenshot(path string) error { x, y := gui.window.GetPos() w, h := gui.window.GetSize() img, err := screenshot.CaptureRect(image.Rectangle{Min: image.Point{X: x, Y: y}, Max: image.Point{X: x + w, Y: y + h}}) if err != nil { - panic(err) + return err } file, err := os.Create(path) if err != nil { - panic(err) + return err } defer file.Close() err = png.Encode(file, img) if err != nil { - panic(err) + os.Remove(path) + return err } + + return nil } func (gui *GUI) windowPosChangeCallback(w *glfw.Window, xpos int, ypos int) { diff --git a/main_test.go b/main_test.go index 8edbae9..4fd1c43 100644 --- a/main_test.go +++ b/main_test.go @@ -5,15 +5,16 @@ package main import ( "flag" "fmt" - "github.com/carlogit/phash" - "github.com/liamg/aminal/config" - "github.com/liamg/aminal/gui" - "github.com/liamg/aminal/terminal" "os" "runtime" "strings" "testing" "time" + + "github.com/carlogit/phash" + "github.com/liamg/aminal/config" + "github.com/liamg/aminal/gui" + "github.com/liamg/aminal/terminal" ) var termRef *terminal.Terminal @@ -76,7 +77,11 @@ func enter(terminal *terminal.Terminal) { func validateScreen(img string, waitForChange bool) { fmt.Printf("taking screenshot: %s and comparing...", img) - guiRef.Screenshot(img) + err := guiRef.Screenshot(img) + if err != nil { + panic(err) + } + compareImages(strings.Join([]string{"vttest/", img}, ""), img) fmt.Printf("compare OK\n") @@ -89,7 +94,10 @@ func validateScreen(img string, waitForChange bool) { for { sleep() actualScren := "temp.png" - guiRef.Screenshot(actualScren) + err = guiRef.Screenshot(actualScren) + if err != nil { + panic(err) + } distance := imagesAreEqual(actualScren, img) if distance != 0 { break