test: add a small test for disable_mempool option

This commit is contained in:
michael 2018-05-22 17:48:36 +02:00 committed by Grégoire Henry
parent aedf867e4a
commit bd3a9fabe5

View 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"