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