A system test to exercise the rpc stop command (#4573)

Introduce a systest case for rpc stop command
This commit is contained in:
Dimitrios Siganos 2024-04-30 14:47:44 +01:00 committed by GitHub
commit 274c6714ca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 23 additions and 0 deletions

View file

@ -50,6 +50,7 @@ void nano::rpc::start ()
logger.critical (nano::log::type::rpc, "Error while binding for RPC on port: {} ({})", endpoint.port (), ec.message ());
throw std::runtime_error (ec.message ());
}
logger.info (nano::log::type::rpc, "RPC listening address: {}", fmt::streamed (acceptor.local_endpoint ()));
acceptor.listen ();
accept ();
}

22
systest/rpc_stop.sh Executable file
View file

@ -0,0 +1,22 @@
#!/bin/bash
set -eux
DATADIR=$(mktemp -d)
# Start the node in daemon mode in the background
$NANO_NODE_EXE --daemon --network dev --data_path $DATADIR --config rpc.enable=true --rpcconfig enable_control=true &
NODE_PID=$!
# Allow some time for the node to start up completely
sleep 10
# Send the stop rpc command
curl -g -d '{ "action": "stop" }' '[::1]:45000'
# Check if the process has stopped using a timeout to avoid infinite waiting
if wait $NODE_PID; then
echo "Node stopped successfully"
else
echo "Node did not stop as expected"
exit 1
fi