Files
wolfssl/scripts/google.test
T
Juliusz Sosinowicz 18aef5a43b google.test: skip when the TCP connection cannot be opened
PRB nodes intermittently fail google.test with 'tcp connect failed:
Connection timed out' while www.google.com still answers ping and
www.wolfssl.com:443 (external.test) connects fine: Google drops or
throttles TCP connections from busy CI egress IPs, so the existing
ping reachability guard does not catch it.

Failing to even open the TCP connection exercises no wolfSSL code, so
treat it like the unreachable-server case and skip (77) instead of
failing. TLS-level failures still fail the test.
2026-07-08 10:31:32 -07:00

57 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
# google.test
server=www.google.com
[ ! -x ./examples/client/client ] && echo -e "\n\nClient doesn't exist" && exit 1
if ! test -n "$WOLFSSL_EXTERNAL_TEST"; then
echo "WOLFSSL_EXTERNAL_TEST not set, won't run"
exit 77
fi
if test "$WOLFSSL_EXTERNAL_TEST" == "0"; then
echo "WOLFSSL_EXTERNAL_TEST is defined to zero, won't run"
exit 77
fi
if ! ./examples/client/client -V | grep -q 3; then
echo 'skipping google.test because TLS1.2 is not available.' 1>&2
exit 77
fi
# is our desired server there?
./scripts/ping.test $server 2
RESULT=$?
[ $RESULT -ne 0 ] && exit 0
# Run the client against the server. The server may answer ping but still drop
# or throttle TCP connections from this host (Google does this to busy CI
# egress IPs). Failing to open the TCP connection exercises no wolfSSL code,
# so treat it like the unreachable-server case above and skip instead of
# failing.
run_client() {
OUTPUT="$(./examples/client/client "$@" 2>&1)"
RESULT=$?
echo "$OUTPUT"
if [ $RESULT -ne 0 ] && echo "$OUTPUT" | grep -q 'tcp connect failed'; then
echo -e "\n\ntcp connect to $server failed, skipping"
exit 77
fi
return $RESULT
}
# client test against the server
run_client -X -C -h $server -p 443 -g -d
RESULT=$?
[ $RESULT -ne 0 ] && echo -e "\n\nClient connection failed" && exit 1
if ./examples/client/client -V | grep -q 4; then
# client test against the server using TLS v1.3
run_client -v 4 -X -C -h $server -p 443 -g -d
RESULT=$?
[ $RESULT -ne 0 ] && echo -e "\n\nTLSv1.3 Client connection failed" && exit 1
fi
exit 0