Skip to content

Commit

Permalink
crypto/x509: skip WSATRY_AGAIN errors when dialing badssl.com subdomains
Browse files Browse the repository at this point in the history
(Temporarily, until the root cause of the test failure can be
diagnosed and fixed properly.)

For #52094

Change-Id: Iec69e162159f3f0a93135f742aac97cf82c1d96c
Reviewed-on: https://go-review.googlesource.com/c/go/+/397478
Trust: Bryan Mills <[email protected]>
Run-TryBot: Bryan Mills <[email protected]>
Reviewed-by: Heschi Kreinick <[email protected]>
TryBot-Result: Gopher Robot <[email protected]>
  • Loading branch information
Bryan C. Mills committed Apr 1, 2022
1 parent 995a604 commit df89f2b
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions src/crypto/x509/root_windows_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ package x509_test
import (
"crypto/tls"
"crypto/x509"
"errors"
"internal/testenv"
"net"
"strings"
"syscall"
"testing"
"time"
)
Expand All @@ -17,10 +21,19 @@ func TestPlatformVerifier(t *testing.T) {
t.Skip()
}

getChain := func(host string) []*x509.Certificate {
getChain := func(t *testing.T, host string) []*x509.Certificate {
t.Helper()
c, err := tls.Dial("tcp", host+":443", &tls.Config{InsecureSkipVerify: true})
if err != nil {
// From https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2,
// matching the error string observed in https://go.dev/issue/52094.
const WSATRY_AGAIN syscall.Errno = 11002
var errDNS *net.DNSError
if strings.HasSuffix(host, ".badssl.com") && errors.As(err, &errDNS) && strings.HasSuffix(errDNS.Err, WSATRY_AGAIN.Error()) {
t.Log(err)
testenv.SkipFlaky(t, 52094)
}

t.Fatalf("tls connection failed: %s", err)
}
return c.ConnectionState().PeerCertificates
Expand Down Expand Up @@ -74,7 +87,7 @@ func TestPlatformVerifier(t *testing.T) {

for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
chain := getChain(tc.host)
chain := getChain(t, tc.host)
var opts x509.VerifyOptions
if len(chain) > 1 {
opts.Intermediates = x509.NewCertPool()
Expand Down

0 comments on commit df89f2b

Please sign in to comment.