66 lines
1.3 KiB
Bash
66 lines
1.3 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -e
|
||
|
cd "$(dirname "$0")"
|
||
|
SOLANA_ROOT="$(cd ../..; pwd)"
|
||
|
|
||
|
|
||
|
if [[ $(uname) != Linux ]]; then
|
||
|
echo Error: this test is Linux only
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
logDir="$PWD"/logs
|
||
|
rm -rf "$logDir"
|
||
|
mkdir "$logDir"
|
||
|
|
||
|
solanaInstallDataDir=$PWD/releases
|
||
|
solanaInstallGlobalOpts=(
|
||
|
--data-dir "$solanaInstallDataDir"
|
||
|
--config "$solanaInstallDataDir"/config.yml
|
||
|
--no-modify-path
|
||
|
)
|
||
|
|
||
|
# Install all the solana versions
|
||
|
bootstrapInstall() {
|
||
|
declare v=$1
|
||
|
if [[ ! -h $solanaInstallDataDir/active_release ]]; then
|
||
|
sh "$SOLANA_ROOT"/install/solana-install-init.sh "$v" "${solanaInstallGlobalOpts[@]}"
|
||
|
fi
|
||
|
export PATH="$solanaInstallDataDir/active_release/bin/:$PATH"
|
||
|
}
|
||
|
|
||
|
bootstrapInstall "edge"
|
||
|
|
||
|
killall solana-gossip || true
|
||
|
solana-gossip spy --gossip-port 8001 > "$logDir"/gossip.log 2>&1 &
|
||
|
solanaGossipPid=$!
|
||
|
echo "solana-gossip pid: $solanaGossipPid"
|
||
|
sleep 5
|
||
|
dd if=/dev/zero bs=1232 > /dev/udp/127.0.0.1/8001 &
|
||
|
ddPid=$!
|
||
|
echo "dd pid: $ddPid"
|
||
|
|
||
|
pass=true
|
||
|
|
||
|
SECONDS=
|
||
|
while ((SECONDS < 600)); do
|
||
|
if ! kill -0 $solanaGossipPid; then
|
||
|
echo "solana-gossip is no longer running after $SECONDS seconds"
|
||
|
pass=false
|
||
|
break
|
||
|
fi
|
||
|
if ! kill -0 $ddPid; then
|
||
|
echo "dd is no longer running after $SECONDS seconds"
|
||
|
pass=false
|
||
|
break
|
||
|
fi
|
||
|
sleep 1
|
||
|
done
|
||
|
|
||
|
kill $solanaGossipPid || true
|
||
|
kill $ddPid || true
|
||
|
wait || true
|
||
|
|
||
|
$pass && echo Pass
|