diff --git a/color_test.go b/color_test.go index 51c781f..bae1075 100644 --- a/color_test.go +++ b/color_test.go @@ -31,7 +31,7 @@ func TestSelectColor_timeout(t *testing.T) { defer cancel() _, err := zenity.SelectColor(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !os.IsTimeout(err) { @@ -45,7 +45,7 @@ func TestSelectColor_cancel(t *testing.T) { cancel() _, err := zenity.SelectColor(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { diff --git a/entry_test.go b/entry_test.go index ca7e7ec..8022a06 100644 --- a/entry_test.go +++ b/entry_test.go @@ -23,7 +23,7 @@ func TestEntry_timeout(t *testing.T) { defer cancel() _, err := zenity.Entry("", zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !os.IsTimeout(err) { @@ -37,7 +37,7 @@ func TestEntry_cancel(t *testing.T) { cancel() _, err := zenity.Entry("", zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { diff --git a/file_test.go b/file_test.go index 9312cf8..014c079 100644 --- a/file_test.go +++ b/file_test.go @@ -83,7 +83,7 @@ func TestFile_timeout(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), time.Second/10) _, err := f(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !os.IsTimeout(err) { @@ -102,7 +102,7 @@ func TestFile_cancel(t *testing.T) { for _, f := range fileFuncs { _, err := f(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { diff --git a/internal/zenutil/run_unix_test.go b/internal/zenutil/run_unix_test.go index fda5c0c..000801b 100644 --- a/internal/zenutil/run_unix_test.go +++ b/internal/zenutil/run_unix_test.go @@ -4,7 +4,7 @@ package zenutil import ( "context" - "errors" + "fmt" "os" "os/exec" "testing" @@ -12,7 +12,7 @@ import ( func TestRun(t *testing.T) { _, err := Run(nil, []string{"--version"}) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if err != nil { @@ -22,7 +22,7 @@ func TestRun(t *testing.T) { func TestRun_context(t *testing.T) { _, err := Run(context.TODO(), []string{"--version"}) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if err != nil { @@ -32,7 +32,7 @@ func TestRun_context(t *testing.T) { func TestRunProgress(t *testing.T) { _, err := RunProgress(nil, 100, nil, []string{"--version"}) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if err != nil { @@ -40,14 +40,14 @@ func TestRunProgress(t *testing.T) { } } -func skip(err error) (error, bool) { +func skip(err error) (bool, error) { if _, ok := err.(*exec.Error); ok { - // zenity/osascript/etc were not found in path - return err, true + // zenity was not found in path + return true, err } if err != nil && os.Getenv("DISPLAY") == "" { // no display - return errors.New("no display"), true + return true, fmt.Errorf("no display: %w", err) } - return nil, false + return false, err } diff --git a/list_test.go b/list_test.go index e92063b..10eeddb 100644 --- a/list_test.go +++ b/list_test.go @@ -51,7 +51,7 @@ func TestList_timeout(t *testing.T) { defer cancel() _, err := zenity.List("", nil, zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !os.IsTimeout(err) { @@ -65,7 +65,7 @@ func TestList_cancel(t *testing.T) { cancel() _, err := zenity.List("", nil, zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { diff --git a/msg_test.go b/msg_test.go index bc49883..5f1df5d 100644 --- a/msg_test.go +++ b/msg_test.go @@ -51,7 +51,7 @@ func TestMessage_timeout(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), time.Second/10) err := f("text", zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !os.IsTimeout(err) { @@ -70,7 +70,7 @@ func TestMessage_cancel(t *testing.T) { for _, f := range msgFuncs { err := f("text", zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { diff --git a/notify_test.go b/notify_test.go index 1ad79c0..3284dcb 100644 --- a/notify_test.go +++ b/notify_test.go @@ -22,7 +22,7 @@ func TestNotify_cancel(t *testing.T) { cancel() err := zenity.Notify("text", zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { diff --git a/progress_test.go b/progress_test.go index 61ac512..690dbaa 100644 --- a/progress_test.go +++ b/progress_test.go @@ -76,7 +76,7 @@ func TestProgress_cancel(t *testing.T) { cancel() _, err := zenity.Progress(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { @@ -89,7 +89,7 @@ func TestProgress_cancelAfter(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) dlg, err := zenity.Progress(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if err != nil { diff --git a/pwd_test.go b/pwd_test.go index 08d3d4e..d47e424 100644 --- a/pwd_test.go +++ b/pwd_test.go @@ -30,7 +30,7 @@ func TestPassword_timeout(t *testing.T) { defer cancel() _, _, err := zenity.Password(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !os.IsTimeout(err) { @@ -44,7 +44,7 @@ func TestPassword_cancel(t *testing.T) { cancel() _, _, err := zenity.Password(zenity.Context(ctx)) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if !errors.Is(err, context.Canceled) { @@ -58,7 +58,7 @@ func TestPassword_username(t *testing.T) { cancel() _, _, err := zenity.Password(zenity.Context(ctx), zenity.Username()) - if err, skip := skip(err); skip { + if skip, err := skip(err); skip { t.Skip("skipping:", err) } if runtime.GOOS == "windows" || runtime.GOOS == "darwin" { diff --git a/zenity_test.go b/zenity_test.go index 9f20427..931eb3d 100644 --- a/zenity_test.go +++ b/zenity_test.go @@ -1,7 +1,7 @@ package zenity_test import ( - "errors" + "fmt" "os" "os/exec" "runtime" @@ -14,14 +14,16 @@ func TestMain(m *testing.M) { goleak.VerifyTestMain(m) } -func skip(err error) (error, bool) { - if _, ok := err.(*exec.Error); ok { - // zenity/osascript/etc were not found in path - return err, true +func skip(err error) (bool, error) { + if runtime.GOOS != "windows" && runtime.GOOS != "darwin" { + if _, ok := err.(*exec.Error); ok { + // zenity was not found in path + return true, err + } + if err != nil && os.Getenv("DISPLAY") == "" { + // no display + return true, fmt.Errorf("no display: %w", err) + } } - if err != nil && os.Getenv("DISPLAY") == "" && !(runtime.GOOS == "windows" || runtime.GOOS == "darwin") { - // no display - return errors.New("no display"), true - } - return nil, false + return false, err }