add check_node_log utility function

This commit is contained in:
Alfredo Garcia 2020-03-06 19:17:18 -03:00
parent 35bff6ac7c
commit aa89d3c342
2 changed files with 29 additions and 17 deletions

View File

@ -14,6 +14,7 @@ from test_framework.util import (
initialize_chain_clean,
start_node,
wait_and_assert_operationid_status,
check_node_log,
)
class ShieldCoinbaseTest (BitcoinTestFramework):
@ -65,24 +66,18 @@ class ShieldCoinbaseTest (BitcoinTestFramework):
assert_equal(self.nodes[1].z_getbalance(node1_zaddr), 0)
# Stop node 1 and check logs to verify the block was rejected correctly
print("Checking node 1 logs")
self.nodes[1].stop()
bitcoind_processes[1].wait()
logpath = self.options.tmpdir + "/node1/regtest/debug.log"
foundErrorMsg = False
with open(logpath, "r") as myfile:
logdata = myfile.readlines()
for logline in logdata:
if "CheckTransaction(): coinbase has output descriptions" in logline:
foundErrorMsg = True
break
assert(foundErrorMsg)
string_to_find = "CheckTransaction(): coinbase has output descriptions"
check_node_log(self, 1, ["-mineraddress=%s" % node1_zaddr], string_to_find)
# Restart node 1
self.nodes[1] = self.start_node_with(1, [
"-mineraddress=%s" % node1_zaddr,
])
connect_nodes(self.nodes[1], 0)
# Test assert in check_node_log
try:
string_to_find = "Will not be found"
check_node_log(self, 1, ["-mineraddress=%s" % node1_zaddr], string_to_find)
except AssertionError:
print("Assert OK")
# Restart node 1
self.nodes[1] = self.start_node_with(1, ["-mineraddress=%s" % node1_zaddr])
connect_nodes(self.nodes[1], 0)
# Activate Heartwood
print("Activating Heartwood")

View File

@ -494,3 +494,20 @@ def get_coinbase_address(node, expected_utxos=None):
addrs = [a for a in set(addrs) if addrs.count(a) == expected_utxos]
assert(len(addrs) > 0)
return addrs[0]
def check_node_log(self, node_number, restart_arguments, line_to_check):
print("Checking node " + str(node_number) + " logs")
self.nodes[node_number].stop()
bitcoind_processes[node_number].wait()
logpath = self.options.tmpdir + "/node" + str(node_number) + "/regtest/debug.log"
foundErrorMsg = False
with open(logpath, "r") as myfile:
logdata = myfile.readlines()
for logline in logdata:
if line_to_check in logline:
foundErrorMsg = True
break
assert(foundErrorMsg)
self.nodes[node_number] = self.start_node_with(node_number, restart_arguments)
connect_nodes(self.nodes[node_number], node_number - 1)