From a8522e9cccfdaeafccdc2a69086d7b2b0bc9bb9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Wo=CC=81jcik?= <3044353+pwojcikdev@users.noreply.github.com> Date: Thu, 1 Feb 2024 00:02:49 +0100 Subject: [PATCH] Improve systest output --- ci/tests/run-system-tests.sh | 43 ++++++++++++++++++++++++++++++++---- systest/.gitignore | 1 - systest/cli_wallet_create.sh | 23 +++---------------- systest/node_initialize.sh | 33 ++++++--------------------- 4 files changed, 49 insertions(+), 51 deletions(-) delete mode 100644 systest/.gitignore diff --git a/ci/tests/run-system-tests.sh b/ci/tests/run-system-tests.sh index e5e53945..f4921217 100755 --- a/ci/tests/run-system-tests.sh +++ b/ci/tests/run-system-tests.sh @@ -1,9 +1,44 @@ #!/bin/bash -set -euo pipefail +set -uo pipefail source "$(dirname "$BASH_SOURCE")/common.sh" -BUILD_DIR=${1-${PWD}} +# Path to the nano-node repository can be provided as an argument +# Otherwise parent directory of working directory is assumed +NANO_REPO_DIR=${1:-../} +NANO_SYSTEST_DIR=${NANO_REPO_DIR}/systest -export NANO_NODE_EXE=${BUILD_DIR}/nano_node$(get_exec_extension) -cd ../systest && ./RUNALL \ No newline at end of file +echo "Running systests from: ${NANO_SYSTEST_DIR}" + +# This assumes that the executables are in the current working directory +export NANO_NODE_EXE=./nano_node$(get_exec_extension) +export NANO_RPC_EXE=./nano_rpc$(get_exec_extension) + +overall_status=0 + +for script in ${NANO_SYSTEST_DIR}/*.sh; do + name=$(basename ${script}) + + echo "::group::Running: $name" + + # Redirecting output to a file to prevent it from being mixed with the output of the action + ./$script > "${name}.log" 2>&1 + status=$? + cat "${name}.log" + + echo "::endgroup::" + + if [ $status -eq 0 ]; then + echo "Passed: $name" + else + echo "::error Systest failed: $name ($?)" + overall_status=1 + fi +done + +if [ $overall_status -eq 0 ]; then + echo "::notice::All systests passed" +else + echo "::error::Some systests failed" + exit 1 +fi diff --git a/systest/.gitignore b/systest/.gitignore deleted file mode 100644 index 72d072be..00000000 --- a/systest/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/data.systest diff --git a/systest/cli_wallet_create.sh b/systest/cli_wallet_create.sh index 45aecc85..d4f125c0 100755 --- a/systest/cli_wallet_create.sh +++ b/systest/cli_wallet_create.sh @@ -1,26 +1,10 @@ -#!/bin/sh +#!/bin/bash +set -eux -set -e -x - -DATADIR=data.systest +DATADIR=$(mktemp -d) SEED=CEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEEDCEED -# the caller should set the env var NANO_NODE_EXE to point to the nano_node executable -# if NANO_NODE_EXE is unser ot empty then "../../build/nano_node" is used -NANO_NODE_EXE=${NANO_NODE_EXE:-../../build/nano_node} - -clean_data_dir() { - rm -f $DATADIR/log/log_*.log - rm -f $DATADIR/wallets.ldb* - rm -f $DATADIR/data.ldb* - rm -f $DATADIR/config-*.toml - rm -rf "$DATADIR"/rocksdb/ -} - -mkdir -p $DATADIR/log -clean_data_dir - # initialise data directory $NANO_NODE_EXE --initialize --data_path $DATADIR @@ -34,5 +18,4 @@ $NANO_NODE_EXE --wallet_decrypt_unsafe --wallet $wallet_id --data_path $DATADIR $NANO_NODE_EXE --wallet_list --data_path $DATADIR | grep -q "Wallet ID: $wallet_id" # if it got this far then it is a pass -echo $0: PASSED exit 0 diff --git a/systest/node_initialize.sh b/systest/node_initialize.sh index 70e98f35..9d1faf65 100755 --- a/systest/node_initialize.sh +++ b/systest/node_initialize.sh @@ -1,28 +1,13 @@ -#!/bin/sh +#!/bin/bash +set -eux -set -e - -DATADIR=data.systest - -# the caller should set the env var NANO_NODE_EXE to point to the nano_node executable -# if NANO_NODE_EXE is unser ot empty then "../../build/nano_node" is used -NANO_NODE_EXE=${NANO_NODE_EXE:-../../build/nano_node} - -clean_data_dir() { - rm -f "$DATADIR"/log/log_*.log - rm -f "$DATADIR"/wallets.ldb* - rm -f "$DATADIR"/data.ldb* - rm -f "$DATADIR"/config-*.toml - rm -rf "$DATADIR"/rocksdb/ -} - -test_initialize_cmd() { +test_cmd() { netmatch="$1" netcmd="$2" netarg="$3" genesishash="$4" - clean_data_dir + DATADIR=$(mktemp -d) # initialise data directory $NANO_NODE_EXE --initialize --data_path "$DATADIR" "$netcmd" "$netarg" @@ -37,13 +22,9 @@ test_initialize_cmd() { $NANO_NODE_EXE --debug_block_dump --data_path "$DATADIR" "$netcmd" "$netarg" | head -n 1 | grep -qi "$genesishash" } -mkdir -p "$DATADIR/log" - -#test_initialize_cmd "live" "" "" "991CF190094C00F0B68E2E5F75F6BEE95A2E0BD93CEAA4A6734DB9F19B728948" -test_initialize_cmd "live" "--network" "live" "991CF190094C00F0B68E2E5F75F6BEE95A2E0BD93CEAA4A6734DB9F19B728948" -test_initialize_cmd "beta" "--network" "beta" "E1227CF974C1455A8B630433D94F3DDBF495EEAC9ADD2481A4A1D90A0D00F488" -test_initialize_cmd "test" "--network" "test" "B1D60C0B886B57401EF5A1DAA04340E53726AA6F4D706C085706F31BBD100CEE" +test_cmd "live" "--network" "live" "991CF190094C00F0B68E2E5F75F6BEE95A2E0BD93CEAA4A6734DB9F19B728948" +test_cmd "beta" "--network" "beta" "E1227CF974C1455A8B630433D94F3DDBF495EEAC9ADD2481A4A1D90A0D00F488" +test_cmd "test" "--network" "test" "B1D60C0B886B57401EF5A1DAA04340E53726AA6F4D706C085706F31BBD100CEE" # if it got this far then it is a pass -echo $0: PASSED exit 0