mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-05 14:10:51 +02:00
88032c1e56
timeout(1) is GNU coreutils and is not installed on macOS, so the "make check macos" job failed with "timeout: command not found" for every wrapped server. Add a small shim to each affected test: when timeout is unavailable (e.g. macOS) run the server unbounded, restoring the prior macOS behavior. The flaky hang the timeout guards against is on the Linux-only trackmemory job, so macOS does not need the bound.
76 lines
2.2 KiB
Bash
Executable File
76 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# timeout(1) is GNU coreutils and absent on macOS; where it's missing, run the
|
|
# command unbounded (the flaky hang this guards against is Linux-only CI).
|
|
if ! command -v timeout >/dev/null 2>&1; then
|
|
timeout() { while [ "${1:-}" = "-s" ] || [ "${1:-}" = "-k" ]; do shift 2; done; shift; "$@"; }
|
|
fi
|
|
|
|
|
|
# dtlscid.test
|
|
# Copyright wolfSSL 2022-2024
|
|
|
|
[ ! -x ./examples/client/client ] && printf '\n\n%s\n' "Client doesn't exist" \
|
|
&& exit 0
|
|
|
|
[ ! -x ./examples/server/server ] && printf '\n\n%s\n' "Server doesn't exist" \
|
|
&& exit 0
|
|
|
|
if ./examples/client/client -? 2>&1 | grep "Client not compiled in!" ; then
|
|
echo 'skipping dtlscid.test because client not compiled in.' 1>&2
|
|
exit 77
|
|
fi
|
|
|
|
if ./examples/server/server -? 2>&1 | grep "Server not compiled in!" ; then
|
|
echo 'skipping dtlscid.test because server not compiled in.' 1>&2
|
|
exit 77
|
|
fi
|
|
|
|
# if we can, isolate the network namespace to eliminate port collisions.
|
|
if [[ -n "$NETWORK_UNSHARE_HELPER" ]]; then
|
|
if [[ -z "$NETWORK_UNSHARE_HELPER_CALLED" ]]; then
|
|
export NETWORK_UNSHARE_HELPER_CALLED=yes
|
|
exec "$NETWORK_UNSHARE_HELPER" "$0" "$@" || exit $?
|
|
fi
|
|
elif [ "${AM_BWRAPPED-}" != "yes" ]; then
|
|
bwrap_path="$(command -v bwrap)"
|
|
if [ -n "$bwrap_path" ]; then
|
|
export AM_BWRAPPED=yes
|
|
exec "$bwrap_path" --unshare-net --dev-bind / / "$0" "$@"
|
|
fi
|
|
unset AM_BWRAPPED
|
|
fi
|
|
|
|
cleanup () {
|
|
echo "Cleaning up..."
|
|
if [ ! -z "$SERVER_PID" ];then
|
|
echo "Killing server $SERVER_PID"
|
|
kill $SERVER_PID
|
|
fi
|
|
}
|
|
|
|
trap cleanup err exit
|
|
|
|
CCID="AA"
|
|
SCID="BB"
|
|
HEXCID=$(printf $CCID | od -An -tx1 | tr -d ' \n')
|
|
HEXSCID=$(printf $SCID | od -An -tx1 | tr -d ' \n')
|
|
WOLFSSL_ROOT=$(pwd)
|
|
|
|
test_cid () {
|
|
echo "Running test_cid"
|
|
SERVER_FILE=$(mktemp)
|
|
CLIENT_FILE=$(mktemp)
|
|
timeout -s KILL 2m $WOLFSSL_ROOT/examples/server/server -v4 -u --cid $SCID 1> $SERVER_FILE &
|
|
SERVER_PID=$!
|
|
sleep 0.2
|
|
$WOLFSSL_ROOT/examples/client/client -v4 -u --cid $CCID 1> $CLIENT_FILE
|
|
wait $SERVER_PID
|
|
SERVER_PID=
|
|
grep "Sending CID is ${HEXSCID}" $CLIENT_FILE > /dev/null
|
|
grep "Sending CID is ${HEXCID}" $SERVER_FILE > /dev/null
|
|
echo "test_cid has passed"
|
|
}
|
|
|
|
test_cid
|