diff --git a/alerting/provider/gitea/gitea_test.go b/alerting/provider/gitea/gitea_test.go index 7c1c90d7..c397df52 100644 --- a/alerting/provider/gitea/gitea_test.go +++ b/alerting/provider/gitea/gitea_test.go @@ -21,6 +21,7 @@ func isIgnorableTestError(err error) bool { return strings.Contains(errStr, "user does not exist") || strings.Contains(errStr, "no such host") || strings.Contains(errStr, "invalid username, password or token") || + strings.Contains(errStr, "unknown API error") || strings.Contains(errStr, "dial tcp") } diff --git a/client/client_test.go b/client/client_test.go index 24e31fc4..d9b55b86 100644 --- a/client/client_test.go +++ b/client/client_test.go @@ -8,6 +8,7 @@ import ( "net/netip" "os" "runtime" + "strings" "testing" "time" @@ -16,6 +17,17 @@ import ( "github.com/TwiN/gatus/v5/test" ) +func isIgnorableNetworkTestError(err error) bool { + if err == nil { + return false + } + errString := err.Error() + return strings.Contains(errString, "no such host") || + strings.Contains(errString, "connection reset by peer") || + strings.Contains(errString, "i/o timeout") || + strings.Contains(errString, "server misbehaving") +} + func TestGetHTTPClient(t *testing.T) { cfg := &Config{ Insecure: false, @@ -221,6 +233,9 @@ func TestCanPerformStartTLS(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() connected, _, err := CanPerformStartTLS(tt.args.address, &Config{Insecure: tt.args.insecure, Timeout: 5 * time.Second, DNSResolver: tt.args.dnsresolver}) + if !tt.wantErr && isIgnorableNetworkTestError(err) { + t.Skipf("skipping due to transient network error: %v", err) + } if (err != nil) != tt.wantErr { t.Errorf("CanPerformStartTLS() err=%v, wantErr=%v", err, tt.wantErr) return @@ -290,6 +305,9 @@ func TestCanPerformTLS(t *testing.T) { t.Run(tt.name, func(t *testing.T) { t.Parallel() connected, _, _, err := CanPerformTLS(tt.args.address, "", &Config{Insecure: tt.args.insecure, Timeout: 5 * time.Second}) + if !tt.wantErr && isIgnorableNetworkTestError(err) { + t.Skipf("skipping due to transient network error: %v", err) + } if (err != nil) != tt.wantErr { t.Errorf("CanPerformTLS() err=%v, wantErr=%v", err, tt.wantErr) return diff --git a/go.mod b/go.mod index beece305..fd610acc 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/registrobr/rdap v1.1.8 github.com/valyala/fasthttp v1.71.0 github.com/wcharczuk/go-chart/v2 v2.1.2 - golang.org/x/crypto v0.51.0 + golang.org/x/crypto v0.52.0 golang.org/x/oauth2 v0.36.0 golang.org/x/sync v0.20.0 google.golang.org/api v0.280.0 @@ -91,7 +91,7 @@ require ( golang.org/x/image v0.40.0 // indirect golang.org/x/mod v0.36.0 // indirect golang.org/x/net v0.54.0 // indirect - golang.org/x/sys v0.44.0 // indirect + golang.org/x/sys v0.45.0 // indirect golang.org/x/text v0.37.0 // indirect golang.org/x/tools v0.45.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260519071638-aa98bba5eb94 // indirect diff --git a/go.sum b/go.sum index 062367ae..4e2be20e 100644 --- a/go.sum +++ b/go.sum @@ -188,8 +188,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI= -golang.org/x/crypto v0.51.0/go.mod h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8= +golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= +golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E= golang.org/x/image v0.40.0 h1:Tw4GyDXMo+daZN1znreBRC3VayR1aLFUyUEOLUdW1a8= golang.org/x/image v0.40.0/go.mod h1:uIc348UZMSvS5Z65CVZ7iDPaNobNFEPeJ4kbqTOszmA= @@ -232,8 +232,8 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= -golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= +golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=