mirror of
https://github.com/luxfi/node.git
synced 2026-07-27 03:39:39 +00:00
53 lines
1.8 KiB
Bash
53 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|||
|
|
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# This script verifies that a network can be reused across test runs.
|
||
|
|
|
||
|
|
# e.g.,
|
||
|
|
# ./scripts/build.sh
|
||
|
|
# ./scripts/tests.e2e.sh --ginkgo.label-filter=x # All arguments are supplied to ginkgo
|
||
|
|
# LUXD_PATH=./build/node ./scripts/tests.e2e.existing.sh # Customization of node path
|
||
|
|
if ! [[ "$0" =~ scripts/tests.e2e.existing.sh ]]; then
|
||
|
|
echo "must be run from repository root"
|
||
|
|
exit 255
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Provide visual separation between testing and setup/teardown
|
||
|
|
function print_separator {
|
||
|
|
printf '%*s\n' "${COLUMNS:-80}" '' | tr ' ' ─
|
||
|
|
}
|
||
|
|
|
||
|
|
# Ensure network cleanup on teardown
|
||
|
|
function cleanup {
|
||
|
|
print_separator
|
||
|
|
echo "cleaning up reusable network"
|
||
|
|
./bin/ginkgo -v ./tests/e2e -- --stop-network
|
||
|
|
}
|
||
|
|
trap cleanup EXIT
|
||
|
|
|
||
|
|
# TMPNET_NETWORK_DIR needs to be unset to ensure --reuse-network won't target an existing network
|
||
|
|
unset TMPNET_NETWORK_DIR
|
||
|
|
|
||
|
|
print_separator
|
||
|
|
echo "starting initial test run that should create the reusable network"
|
||
|
|
./scripts/tests.e2e.sh --reuse-network --ginkgo.focus-file=xsvm.go "${@}"
|
||
|
|
|
||
|
|
print_separator
|
||
|
|
echo "determining the network path of the reusable network created by the first test run"
|
||
|
|
SYMLINK_PATH="${HOME}/.tmpnet/networks/latest_node-e2e"
|
||
|
|
INITIAL_NETWORK_DIR="$(realpath "${SYMLINK_PATH}")"
|
||
|
|
|
||
|
|
print_separator
|
||
|
|
echo "starting second test run that should reuse the network created by the first run"
|
||
|
|
echo "the network is first restarted to verify that the network state was correctly serialized"
|
||
|
|
./scripts/tests.e2e.sh --restart-network --ginkgo.focus-file=xsvm.go "${@}"
|
||
|
|
|
||
|
|
SUBSEQUENT_NETWORK_DIR="$(realpath "${SYMLINK_PATH}")"
|
||
|
|
echo "checking that the symlink path remains the same, indicating that the network was reused"
|
||
|
|
if [[ "${INITIAL_NETWORK_DIR}" != "${SUBSEQUENT_NETWORK_DIR}" ]]; then
|
||
|
|
print_separator
|
||
|
|
echo "network was not reused across test runs"
|
||
|
|
exit 1
|
||
|
|
fi
|