Skip to content

Commit 56cfbdd

Browse files
random-zebraFuzzbawls
authored andcommitted
[Tests] Cleanup rpc_spork functional test with new util functions
Github-Pull: #1218 Rebased-From: 68ce4e9
1 parent e5e6f28 commit 56cfbdd

File tree

1 file changed

+38
-56
lines changed

1 file changed

+38
-56
lines changed

test/functional/rpc_spork.py

Lines changed: 38 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -6,85 +6,67 @@
66

77
from time import sleep
88

9-
from test_framework.mininode import network_thread_start
109
from test_framework.test_framework import PivxTestFramework
11-
from test_framework.util import connect_nodes_bi, p2p_port
12-
from fake_stake.util import TestNode
10+
from test_framework.util import connect_nodes_bi, set_node_times, assert_equal, \
11+
set_spork, get_spork, is_spork_active, activate_spork, deactivate_spork
1312

1413

1514
class PIVX_RPCSporkTest(PivxTestFramework):
15+
1616
def set_test_params(self):
1717
self.setup_clean_chain = True
1818
self.num_nodes = 2
1919
self.extra_args = [['-staking=1']] * self.num_nodes
2020
self.extra_args[0].append('-sporkkey=932HEevBSujW2ud7RfB1YF91AFygbBRQj3de3LyaCRqNzKKgWXi')
2121

22+
def setup_chain(self):
23+
# Start with clean chain
24+
self._initialize_chain_clean()
25+
self.enable_mocktime()
2226

23-
def setup_network(self):
24-
''' Can't rely on syncing all the nodes when staking=1
25-
:param:
26-
:return:
27-
'''
28-
self.setup_nodes()
29-
for i in range(self.num_nodes - 1):
30-
for j in range(i+1, self.num_nodes):
31-
connect_nodes_bi(self.nodes, i, j)
32-
33-
def init_test(self):
34-
''' Initializes test parameters
35-
:param:
36-
:return:
37-
'''
27+
def log_title(self):
3828
title = "*** Starting %s ***" % self.__class__.__name__
3929
underline = "-" * len(title)
40-
self.log.info("\n\n%s\n%s\n%s\n", title, underline, self.description)
41-
42-
# Setup the p2p connections and start up the network thread.
43-
self.test_nodes = []
44-
for i in range(self.num_nodes):
45-
self.test_nodes.append(TestNode())
46-
self.test_nodes[i].peer_connect('127.0.0.1', p2p_port(i))
30+
description = "Performs tests on the Spork RPC"
31+
self.log.info("\n\n%s\n%s\n%s\n", title, underline, description)
4732

48-
network_thread_start() # Start up network handling in another thread
49-
self.node = self.nodes[0]
50-
51-
# Let the test nodes get in sync
52-
for i in range(self.num_nodes):
53-
self.test_nodes[i].wait_for_verack()
33+
def run_test(self):
34+
self.log_title()
35+
set_node_times(self.nodes, self.mocktime)
36+
sporkName = "SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT"
5437

38+
# 0 - check SPORK 8 status from node 1 (must be inactive)
39+
assert_equal(False, is_spork_active(self.nodes, 1, sporkName))
5540

56-
def printDict(self, d):
57-
self.log.info("{")
58-
for k in d:
59-
self.log.info(" %s = %d" % (k, d[k]))
60-
self.log.info("}")
41+
# 1 - activate SPORK 8 with nodes[0]
42+
assert_equal("success", activate_spork(self.nodes, 0, sporkName))
43+
sleep(1)
44+
# check SPORK 8 status from nodes[1] (must be active)
45+
assert_equal(True, is_spork_active(self.nodes, 1, sporkName))
6146

47+
# 2 - Adjust time to 1 sec in the future and deactivate SPORK 8 with node[0]
48+
self.mocktime += 1
49+
set_node_times(self.nodes, self.mocktime)
50+
assert_equal("success", deactivate_spork(self.nodes, 0, sporkName))
51+
sleep(1)
52+
# check SPORK 8 value from nodes[1] (must be inactive again)
53+
assert_equal(False, is_spork_active(self.nodes, 1, sporkName))
6254

63-
def run_test(self):
64-
self.description = "Performs tests on the Spork RPC"
65-
# check spork values:
66-
sporks = self.nodes[1].spork("show")
67-
self.printDict(sporks)
68-
active = self.nodes[1].spork("active")
69-
assert(not active["SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT"])
70-
# activate SPORK 8
71-
new_value = 1563253447
72-
res = self.nodes[0].spork("SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT", new_value)
73-
assert(res == "success")
55+
# 3 - Adjust time to 1 sec in the future and set new value (mocktime) for SPORK 8 with node[0]
56+
self.mocktime += 1
57+
set_node_times(self.nodes, self.mocktime)
58+
assert_equal("success", set_spork(self.nodes, 0, sporkName, self.mocktime))
7459
sleep(1)
75-
self.sync_all()
76-
sporks = self.nodes[1].spork("show")
77-
self.printDict(sporks)
78-
assert(sporks["SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT"] == new_value)
79-
active = self.nodes[0].spork("active")
80-
assert (active["SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT"])
60+
# check SPORK 8 value from nodes[1] (must be equal to mocktime)
61+
assert_equal(self.mocktime, get_spork(self.nodes, 1, sporkName))
62+
63+
# 4 - Stop nodes and check value again after restart
8164
self.log.info("Stopping nodes...")
8265
self.stop_nodes()
8366
self.log.info("Restarting node 1...")
8467
self.start_node(1, [])
85-
sporks = self.nodes[1].spork("show")
86-
self.printDict(sporks)
87-
assert (sporks["SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT"] == new_value)
68+
assert_equal(self.mocktime, get_spork(self.nodes, 1, sporkName))
69+
self.log.info("%s: TEST PASSED" % self.__class__.__name__)
8870

8971

9072

0 commit comments

Comments
 (0)