aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2017-06-07 13:43:03 -0400
committerJohn Newbery <john@johnnewbery.com>2017-06-29 11:55:23 +0100
commit0d473c539ed0f53168aa3bae8474f214831dec1f (patch)
tree3bb27a7b56a4d8d7cd49297d64dedf524cb8f872
parentcad967a892d836b3afbd1ab81c73731e968368c6 (diff)
[tests] move mocktime property and functions to BitcoinTestFramework
-rwxr-xr-xtest/functional/listtransactions.py2
-rwxr-xr-xtest/functional/receivedby.py2
-rwxr-xr-xtest/functional/test_framework/test_framework.py27
-rw-r--r--test/functional/test_framework/util.py21
4 files changed, 22 insertions, 30 deletions
diff --git a/test/functional/listtransactions.py b/test/functional/listtransactions.py
index f69f1c5724..f75a8e29cc 100755
--- a/test/functional/listtransactions.py
+++ b/test/functional/listtransactions.py
@@ -23,7 +23,7 @@ class ListTransactionsTest(BitcoinTestFramework):
def setup_nodes(self):
#This test requires mocktime
- enable_mocktime()
+ self.enable_mocktime()
self.nodes = self.start_nodes(self.num_nodes, self.options.tmpdir)
def run_test(self):
diff --git a/test/functional/receivedby.py b/test/functional/receivedby.py
index 2cad6269ac..19d99c9c9e 100755
--- a/test/functional/receivedby.py
+++ b/test/functional/receivedby.py
@@ -31,7 +31,7 @@ class ReceivedByTest(BitcoinTestFramework):
def setup_nodes(self):
#This test requires mocktime
- enable_mocktime()
+ self.enable_mocktime()
self.nodes = self.start_nodes(self.num_nodes, self.options.tmpdir)
def run_test(self):
diff --git a/test/functional/test_framework/test_framework.py b/test/functional/test_framework/test_framework.py
index 557c9db482..00807b022c 100755
--- a/test/functional/test_framework/test_framework.py
+++ b/test/functional/test_framework/test_framework.py
@@ -26,10 +26,7 @@ from .util import (
assert_equal,
check_json_precision,
connect_nodes_bi,
- disable_mocktime,
disconnect_nodes,
- enable_mocktime,
- get_mocktime,
get_rpc_proxy,
initialize_datadir,
get_datadir_path,
@@ -73,6 +70,7 @@ class BitcoinTestFramework(object):
self.setup_clean_chain = False
self.nodes = []
self.bitcoind_processes = {}
+ self.mocktime = 0
def add_options(self, parser):
pass
@@ -211,7 +209,7 @@ class BitcoinTestFramework(object):
datadir = os.path.join(dirname, "node" + str(i))
if binary is None:
binary = os.getenv("BITCOIND", "bitcoind")
- args = [binary, "-datadir=" + datadir, "-server", "-keypool=1", "-discover=0", "-rest", "-logtimemicros", "-debug", "-debugexclude=libevent", "-debugexclude=leveldb", "-mocktime=" + str(get_mocktime()), "-uacomment=testnode%d" % i]
+ args = [binary, "-datadir=" + datadir, "-server", "-keypool=1", "-discover=0", "-rest", "-logtimemicros", "-debug", "-debugexclude=libevent", "-debugexclude=leveldb", "-mocktime=" + str(self.mocktime), "-uacomment=testnode%d" % i]
if extra_args is not None:
args.extend(extra_args)
self.bitcoind_processes[i] = subprocess.Popen(args, stderr=stderr)
@@ -312,6 +310,21 @@ class BitcoinTestFramework(object):
sync_blocks(group)
sync_mempools(group)
+ def enable_mocktime(self):
+ """Enable mocktime for the script.
+
+ mocktime may be needed for scripts that use the cached version of the
+ blockchain. If the cached version of the blockchain is used without
+ mocktime then the mempools will not sync due to IBD.
+
+ For backwared compatibility of the python scripts with previous
+ versions of the cache, this helper function sets mocktime to Jan 1,
+ 2014 + (201 * 10 * 60)"""
+ self.mocktime = 1388534400 + (201 * 10 * 60)
+
+ def disable_mocktime(self):
+ self.mocktime = 0
+
# Private helper methods. These should not be accessed by the subclass test scripts.
def _start_logging(self):
@@ -389,8 +402,8 @@ class BitcoinTestFramework(object):
#
# blocks are created with timestamps 10 minutes apart
# starting from 2010 minutes in the past
- enable_mocktime()
- block_time = get_mocktime() - (201 * 10 * 60)
+ self.enable_mocktime()
+ block_time = self.mocktime - (201 * 10 * 60)
for i in range(2):
for peer in range(4):
for j in range(25):
@@ -403,7 +416,7 @@ class BitcoinTestFramework(object):
# Shut them down, and clean up cache directories:
self.stop_nodes()
self.nodes = []
- disable_mocktime()
+ self.disable_mocktime()
for i in range(MAX_NODES):
os.remove(log_filename(cachedir, i, "debug.log"))
os.remove(log_filename(cachedir, i, "db.log"))
diff --git a/test/functional/test_framework/util.py b/test/functional/test_framework/util.py
index fbdb3d7e6d..cca1e2b894 100644
--- a/test/functional/test_framework/util.py
+++ b/test/functional/test_framework/util.py
@@ -30,27 +30,6 @@ class PortSeed:
# Must be initialized with a unique integer for each process
n = None
-# Set Mocktime default to OFF.
-# MOCKTIME is only needed for scripts that use the
-# cached version of the blockchain. If the cached
-# version of the blockchain is used without MOCKTIME
-# then the mempools will not sync due to IBD.
-MOCKTIME = 0
-
-def enable_mocktime():
- # For backwared compatibility of the python scripts
- # with previous versions of the cache, set MOCKTIME
- # to Jan 1, 2014 + (201 * 10 * 60)
- global MOCKTIME
- MOCKTIME = 1388534400 + (201 * 10 * 60)
-
-def disable_mocktime():
- global MOCKTIME
- MOCKTIME = 0
-
-def get_mocktime():
- return MOCKTIME
-
def get_rpc_proxy(url, node_number, timeout=None, coveragedir=None):
"""
Args: