solana/ci/localnet-sanity.sh

108 lines
2.0 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -e
2018-07-30 12:51:35 -07:00
#
# Perform a quick sanity test on a leader, drone, validator and client running
# locally on the same machine
#
cd "$(dirname "$0")"/..
source ci/upload-ci-artifact.sh
source scripts/configure-metrics.sh
2018-07-30 12:51:35 -07:00
multinode-demo/setup.sh
2018-07-30 12:51:35 -07:00
backgroundCommands="drone bootstrap-leader fullnode fullnode-x"
2018-07-30 12:51:35 -07:00
pids=()
for cmd in $backgroundCommands; do
echo "--- Start $cmd"
rm -f log-"$cmd".txt
multinode-demo/"$cmd".sh > log-"$cmd".txt 2>&1 &
2018-07-30 12:51:35 -07:00
declare pid=$!
pids+=("$pid")
echo "pid: $pid"
done
killBackgroundCommands() {
2018-07-30 12:51:35 -07:00
set +e
for pid in "${pids[@]}"; do
if kill "$pid"; then
wait "$pid"
else
echo -e "^^^ +++\\nWarning: unable to kill $pid"
fi
done
set -e
pids=()
}
shutdown() {
exitcode=$?
killBackgroundCommands
set +e
2018-07-30 12:51:35 -07:00
echo "--- Upload artifacts"
2018-07-30 12:51:35 -07:00
for cmd in $backgroundCommands; do
declare logfile=log-$cmd.txt
upload-ci-artifact "$logfile"
2018-07-30 12:51:35 -07:00
tail "$logfile"
done
2018-07-30 17:09:05 -07:00
exit $exitcode
2018-07-30 12:51:35 -07:00
}
2018-07-30 17:09:05 -07:00
trap shutdown EXIT INT
2018-07-30 12:51:35 -07:00
set -e
2018-08-14 11:31:52 -07:00
flag_error() {
echo Failed
echo "^^^ +++"
exit 1
}
2018-08-27 17:57:04 -07:00
echo "--- Wallet sanity"
(
set -x
2018-12-17 09:39:02 -08:00
timeout 60s scripts/wallet-sanity.sh
2018-08-27 17:57:04 -07:00
) || flag_error
echo "--- Node count"
(
source multinode-demo/common.sh
set -x
client_id=/tmp/client-id.json-$$
2018-12-04 21:30:08 -08:00
$solana_keygen -o $client_id || exit $?
$solana_bench_tps \
--identity $client_id \
--num-nodes 3 \
--reject-extra-nodes \
--converge-only || exit $?
rm -rf $client_id
2018-08-27 17:57:04 -07:00
) || flag_error
2018-07-30 12:51:35 -07:00
2018-12-24 11:10:53 -08:00
echo "--- RPC API: getTransactionCount"
(
set -x
2019-01-08 08:29:41 -08:00
curl --retry 5 --retry-delay 2 --retry-connrefused \
-X POST -H 'Content-Type: application/json' \
2018-12-24 11:10:53 -08:00
-d '{"jsonrpc":"2.0","id":1, "method":"getTransactionCount"}' \
http://localhost:8899
) || flag_error
killBackgroundCommands
2018-08-14 11:31:52 -07:00
echo "--- Ledger verification"
(
source multinode-demo/common.sh
set -x
cp -R "$SOLANA_CONFIG_DIR"/bootstrap-leader-ledger /tmp/ledger-$$
2018-12-04 21:30:08 -08:00
$solana_ledger_tool --ledger /tmp/ledger-$$ verify || exit $?
2018-08-27 17:57:04 -07:00
rm -rf /tmp/ledger-$$
2018-08-14 11:31:52 -07:00
) || flag_error
2018-07-30 12:51:35 -07:00
echo +++
echo Ok
exit 0