Improve CI testing.

This commit is contained in:
Nuno Cruces 2021-07-07 01:01:22 +01:00
parent 93936c933a
commit 9e27c73490
10 changed files with 37 additions and 35 deletions

View file

@ -31,7 +31,7 @@ func TestSelectColor_timeout(t *testing.T) {
defer cancel() defer cancel()
_, err := zenity.SelectColor(zenity.Context(ctx)) _, err := zenity.SelectColor(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !os.IsTimeout(err) { if !os.IsTimeout(err) {
@ -45,7 +45,7 @@ func TestSelectColor_cancel(t *testing.T) {
cancel() cancel()
_, err := zenity.SelectColor(zenity.Context(ctx)) _, err := zenity.SelectColor(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {

View file

@ -23,7 +23,7 @@ func TestEntry_timeout(t *testing.T) {
defer cancel() defer cancel()
_, err := zenity.Entry("", zenity.Context(ctx)) _, err := zenity.Entry("", zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !os.IsTimeout(err) { if !os.IsTimeout(err) {
@ -37,7 +37,7 @@ func TestEntry_cancel(t *testing.T) {
cancel() cancel()
_, err := zenity.Entry("", zenity.Context(ctx)) _, err := zenity.Entry("", zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {

View file

@ -83,7 +83,7 @@ func TestFile_timeout(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second/10) ctx, cancel := context.WithTimeout(context.Background(), time.Second/10)
_, err := f(zenity.Context(ctx)) _, err := f(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !os.IsTimeout(err) { if !os.IsTimeout(err) {
@ -102,7 +102,7 @@ func TestFile_cancel(t *testing.T) {
for _, f := range fileFuncs { for _, f := range fileFuncs {
_, err := f(zenity.Context(ctx)) _, err := f(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {

View file

@ -4,7 +4,7 @@ package zenutil
import ( import (
"context" "context"
"errors" "fmt"
"os" "os"
"os/exec" "os/exec"
"testing" "testing"
@ -12,7 +12,7 @@ import (
func TestRun(t *testing.T) { func TestRun(t *testing.T) {
_, err := Run(nil, []string{"--version"}) _, err := Run(nil, []string{"--version"})
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if err != nil { if err != nil {
@ -22,7 +22,7 @@ func TestRun(t *testing.T) {
func TestRun_context(t *testing.T) { func TestRun_context(t *testing.T) {
_, err := Run(context.TODO(), []string{"--version"}) _, err := Run(context.TODO(), []string{"--version"})
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if err != nil { if err != nil {
@ -32,7 +32,7 @@ func TestRun_context(t *testing.T) {
func TestRunProgress(t *testing.T) { func TestRunProgress(t *testing.T) {
_, err := RunProgress(nil, 100, nil, []string{"--version"}) _, err := RunProgress(nil, 100, nil, []string{"--version"})
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if err != nil { 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 { if _, ok := err.(*exec.Error); ok {
// zenity/osascript/etc were not found in path // zenity was not found in path
return err, true return true, err
} }
if err != nil && os.Getenv("DISPLAY") == "" { if err != nil && os.Getenv("DISPLAY") == "" {
// no display // no display
return errors.New("no display"), true return true, fmt.Errorf("no display: %w", err)
} }
return nil, false return false, err
} }

View file

@ -51,7 +51,7 @@ func TestList_timeout(t *testing.T) {
defer cancel() defer cancel()
_, err := zenity.List("", nil, zenity.Context(ctx)) _, err := zenity.List("", nil, zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !os.IsTimeout(err) { if !os.IsTimeout(err) {
@ -65,7 +65,7 @@ func TestList_cancel(t *testing.T) {
cancel() cancel()
_, err := zenity.List("", nil, zenity.Context(ctx)) _, err := zenity.List("", nil, zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {

View file

@ -51,7 +51,7 @@ func TestMessage_timeout(t *testing.T) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second/10) ctx, cancel := context.WithTimeout(context.Background(), time.Second/10)
err := f("text", zenity.Context(ctx)) err := f("text", zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !os.IsTimeout(err) { if !os.IsTimeout(err) {
@ -70,7 +70,7 @@ func TestMessage_cancel(t *testing.T) {
for _, f := range msgFuncs { for _, f := range msgFuncs {
err := f("text", zenity.Context(ctx)) err := f("text", zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {

View file

@ -22,7 +22,7 @@ func TestNotify_cancel(t *testing.T) {
cancel() cancel()
err := zenity.Notify("text", zenity.Context(ctx)) err := zenity.Notify("text", zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {

View file

@ -76,7 +76,7 @@ func TestProgress_cancel(t *testing.T) {
cancel() cancel()
_, err := zenity.Progress(zenity.Context(ctx)) _, err := zenity.Progress(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {
@ -89,7 +89,7 @@ func TestProgress_cancelAfter(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
dlg, err := zenity.Progress(zenity.Context(ctx)) dlg, err := zenity.Progress(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if err != nil { if err != nil {

View file

@ -30,7 +30,7 @@ func TestPassword_timeout(t *testing.T) {
defer cancel() defer cancel()
_, _, err := zenity.Password(zenity.Context(ctx)) _, _, err := zenity.Password(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !os.IsTimeout(err) { if !os.IsTimeout(err) {
@ -44,7 +44,7 @@ func TestPassword_cancel(t *testing.T) {
cancel() cancel()
_, _, err := zenity.Password(zenity.Context(ctx)) _, _, err := zenity.Password(zenity.Context(ctx))
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if !errors.Is(err, context.Canceled) { if !errors.Is(err, context.Canceled) {
@ -58,7 +58,7 @@ func TestPassword_username(t *testing.T) {
cancel() cancel()
_, _, err := zenity.Password(zenity.Context(ctx), zenity.Username()) _, _, err := zenity.Password(zenity.Context(ctx), zenity.Username())
if err, skip := skip(err); skip { if skip, err := skip(err); skip {
t.Skip("skipping:", err) t.Skip("skipping:", err)
} }
if runtime.GOOS == "windows" || runtime.GOOS == "darwin" { if runtime.GOOS == "windows" || runtime.GOOS == "darwin" {

View file

@ -1,7 +1,7 @@
package zenity_test package zenity_test
import ( import (
"errors" "fmt"
"os" "os"
"os/exec" "os/exec"
"runtime" "runtime"
@ -14,14 +14,16 @@ func TestMain(m *testing.M) {
goleak.VerifyTestMain(m) goleak.VerifyTestMain(m)
} }
func skip(err error) (error, bool) { func skip(err error) (bool, error) {
if _, ok := err.(*exec.Error); ok { if runtime.GOOS != "windows" && runtime.GOOS != "darwin" {
// zenity/osascript/etc were not found in path if _, ok := err.(*exec.Error); ok {
return err, true // 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") { return false, err
// no display
return errors.New("no display"), true
}
return nil, false
} }