commit dbec3af810851666ba16e3c9b9e966974fcb0aa5
parent 1f373c1eb9c119605aac24f8cdeb7230925b1468
Author: SomberNight <somber.night@protonmail.com>
Date: Mon, 28 May 2018 14:02:07 +0200
tests: introduce FAST_TESTS flag for faster local testing
Diffstat:
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/lib/tests/__init__.py b/lib/tests/__init__.py
@@ -4,6 +4,13 @@ import threading
from lib import constants
+# Set this locally to make the test suite run faster.
+# If set, unit tests that would normally test functions with multiple implementations,
+# will only be run once, using the fastest implementation.
+# e.g. libsecp256k1 vs python-ecdsa. pycryptodomex vs pyaes.
+FAST_TESTS = False
+
+
# some unit tests are modifying globals; sorry.
class SequentialTestCase(unittest.TestCase):
diff --git a/lib/tests/test_bitcoin.py b/lib/tests/test_bitcoin.py
@@ -21,8 +21,8 @@ from lib import constants
from lib.storage import WalletStorage
from . import SequentialTestCase
-
from . import TestCaseForTestnet
+from . import FAST_TESTS
try:
@@ -39,6 +39,9 @@ def needs_test_with_all_ecc_implementations(func):
tests running in parallel would break things
"""
def run_test(*args, **kwargs):
+ if FAST_TESTS: # if set, only run tests once, using fastest implementation
+ func(*args, **kwargs)
+ return
ecc_fast.undo_monkey_patching_of_python_ecdsa_internals_with_libsecp256k1()
try:
# first test without libsecp
@@ -61,6 +64,9 @@ def needs_test_with_all_aes_implementations(func):
tests running in parallel would break things
"""
def run_test(*args, **kwargs):
+ if FAST_TESTS: # if set, only run tests once, using fastest implementation
+ func(*args, **kwargs)
+ return
_aes = crypto.AES
crypto.AES = None
try: