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()
_, 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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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) {

View File

@ -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 {

View File

@ -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" {

View File

@ -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
}