test: add a small test for disable_mempool option
This commit is contained in:
parent
aedf867e4a
commit
bd3a9fabe5
170
src/bin_client/test/test_mempool.sh
Executable file
170
src/bin_client/test/test_mempool.sh
Executable file
@ -0,0 +1,170 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
#test_dir="$(cd "$(dirname "$0")" && echo "$(pwd -P)")"
|
||||||
|
source src/bin_client/test/test_lib.inc.sh "$@"
|
||||||
|
|
||||||
|
empty_mempool='{ "applied": [], "refused": [], "branch_refused": [], "branch_delayed": [],
|
||||||
|
"unprocessed": [] }'
|
||||||
|
|
||||||
|
rpc_not_found='Unregistred error:
|
||||||
|
{ "kind": "generic",
|
||||||
|
"error": "Prevalidator is not running, cannot inject the operation" }
|
||||||
|
Fatal error: transfer simulation failed.'
|
||||||
|
|
||||||
|
prev_not_running='[]'
|
||||||
|
|
||||||
|
assert_mempool_not_empty() {
|
||||||
|
local expected=$empty_mempool
|
||||||
|
local result="$(cat)"
|
||||||
|
if [ "${result}" = "${expected}" ]; then
|
||||||
|
echo "Unexpected result: \"${result}\""
|
||||||
|
echo "Should be different than: \"${expected}\""
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_mempool_empty() {
|
||||||
|
local expected=$empty_mempool
|
||||||
|
local result="$(cat)"
|
||||||
|
if [ "${result}" != "${expected}" ]; then
|
||||||
|
echo "Unexpected result: \"${result}\""
|
||||||
|
echo "Expected: \"${expected}\""
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_rpc_not_exist() {
|
||||||
|
local expected=$rpc_not_found
|
||||||
|
local result="$(cat)"
|
||||||
|
if [ "${result}" != "${expected}" ]; then
|
||||||
|
echo "Unexpected result: \"${result}\""
|
||||||
|
echo "Expected: \"${expected}\""
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_rpc_exists() {
|
||||||
|
local expected=$rpc_not_found
|
||||||
|
local result="$(cat)"
|
||||||
|
if [ "${result}" = "${expected}" ]; then
|
||||||
|
echo "Unexpected result: \"${result}\""
|
||||||
|
echo "Should be different than: \"${expected}\""
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_prev_not_running() {
|
||||||
|
local expected=$prev_not_running
|
||||||
|
local result="$(cat)"
|
||||||
|
if [ "${result}" != "${expected}" ]; then
|
||||||
|
echo "Unexpected result: \"${result}\""
|
||||||
|
echo "Expected: \"${expected}\""
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
assert_prev_running() {
|
||||||
|
local expected=$prev_not_running
|
||||||
|
local result="$(cat)"
|
||||||
|
if [ "${result}" = "${expected}" ]; then
|
||||||
|
echo "Unexpected result: \"${result}\""
|
||||||
|
echo "Should be different than: \"${expected}\""
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo Starting 1st node
|
||||||
|
echo
|
||||||
|
|
||||||
|
start_node 1
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo Starting 2nd node
|
||||||
|
echo
|
||||||
|
|
||||||
|
start_node 3
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo Starting 3rd node
|
||||||
|
echo
|
||||||
|
|
||||||
|
start_node 9 --disable-mempool
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo Activating Alpha protocol
|
||||||
|
echo
|
||||||
|
|
||||||
|
activate_alpha
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
echo
|
||||||
|
$client3 rpc call '/network/peers' with '{}'
|
||||||
|
echo
|
||||||
|
|
||||||
|
#tests for the prevalidator state
|
||||||
|
$client1 rpc call '/workers/prevalidators' | assert_prev_running
|
||||||
|
echo 1st node prevalidator is running
|
||||||
|
$client3 rpc call '/workers/prevalidators' | assert_prev_running
|
||||||
|
echo 2nd node prevalidator is running
|
||||||
|
$client9 rpc call '/workers/prevalidators' | assert_prev_not_running
|
||||||
|
echo 3dr node prevalidator is not running
|
||||||
|
|
||||||
|
#checks that mempools are empty
|
||||||
|
$client1 rpc call '/mempool/pending_operations' | assert_mempool_empty
|
||||||
|
echo 1st node mempool is empty
|
||||||
|
|
||||||
|
$client3 rpc call '/mempool/pending_operations' | assert_mempool_empty
|
||||||
|
echo 2nd node mempool is empty
|
||||||
|
|
||||||
|
$client9 rpc call '/mempool/pending_operations' | assert_mempool_empty
|
||||||
|
echo 3rd node mempool is empty
|
||||||
|
|
||||||
|
#inject a transaction through the 1st node
|
||||||
|
$client1 transfer 1,000 from bootstrap1 to bootstrap2 &
|
||||||
|
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
#checks that mempools are not empty for enable-mempool nodes and
|
||||||
|
#empty for the disable-mempool node
|
||||||
|
$client1 rpc call '/mempool/pending_operations' | assert_mempool_not_empty
|
||||||
|
echo 1st node mempool is not empty
|
||||||
|
|
||||||
|
$client3 rpc call '/mempool/pending_operations' | assert_mempool_not_empty
|
||||||
|
echo 2nd node mempool is not empty
|
||||||
|
|
||||||
|
$client9 rpc call '/mempool/pending_operations' | assert_mempool_empty
|
||||||
|
echo 3rd node mempool is empty
|
||||||
|
|
||||||
|
$client1 bake for bootstrap1
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
#checks that all mempool are empty after baking a block which contains the
|
||||||
|
#transaction
|
||||||
|
$client1 rpc call '/mempool/pending_operations' | assert_mempool_empty
|
||||||
|
echo 1st node mempool is empty
|
||||||
|
|
||||||
|
$client3 rpc call '/mempool/pending_operations' | assert_mempool_empty
|
||||||
|
echo 2nd node mempool is empty
|
||||||
|
|
||||||
|
$client9 rpc call '/mempool/pending_operations' | assert_mempool_empty
|
||||||
|
echo 3rd node mempool is empty
|
||||||
|
|
||||||
|
#checks that trying to inject an operation through a disable-mempool node fails
|
||||||
|
{
|
||||||
|
$client9 transfer 2,000 from bootstrap2 to bootstrap3 2> /dev/null &&
|
||||||
|
if [ $? = 0 ]; then
|
||||||
|
echo "This should have failed... exit code:" $?
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
} ||
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo End of test
|
||||||
|
echo
|
||||||
|
|
||||||
|
show_logs="no"
|
Loading…
Reference in New Issue
Block a user