From a6a3e58c483700bd5f2bc7d117a621e0c4af60e3 Mon Sep 17 00:00:00 2001 From: John Newbery Date: Fri, 17 Feb 2017 14:22:56 -0500 Subject: [PATCH] Various review markups for rpc-tests.py improvements --- qa/pull-tester/rpc-tests.py | 32 ++++++++++++++++-------------- qa/pull-tester/tests_config.ini.in | 15 ++++---------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/qa/pull-tester/rpc-tests.py b/qa/pull-tester/rpc-tests.py index 1b4c90564..18e08f06c 100755 --- a/qa/pull-tester/rpc-tests.py +++ b/qa/pull-tester/rpc-tests.py @@ -8,6 +8,8 @@ rpc-tests.py - run regression test suite This module calls down into individual test cases via subprocess. It will forward all unrecognized arguments onto the individual test scripts. +RPC tests are disabled on Windows by default. Use --force to run them anyway. + For a description of arguments recognized by test scripts, see `qa/pull-tester/test_framework/test_framework.py:BitcoinTestFramework.main`. @@ -24,8 +26,8 @@ import tempfile import re BASE_SCRIPTS= [ - # Scripts that are run by the travis build process - # longest test should go first, to favor running tests in parallel + # Scripts that are run by the travis build process. + # Longest test should go first, to favor running tests in parallel 'wallet-hd.py', 'walletbackup.py', # vv Tests less than 5m vv @@ -130,11 +132,11 @@ def main(): formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('--coverage', action='store_true', help='generate a basic coverage report for the RPC interface') parser.add_argument('--extended', action='store_true', help='run the extended test suite in addition to the basic tests') + parser.add_argument('--force', '-f', action='store_true', help='run tests even on platforms where they are disabled by default (e.g. windows).') parser.add_argument('--help', '-h', '-?', action='store_true', help='print help text and exit') - parser.add_argument('--nozmq', action='store_true', help='do not run the zmq tests') parser.add_argument('--jobs', '-j', type=int, default=4, help='how many test scripts to run in parallel. Default=4.') - parser.add_argument('--win', action='store_true', help='signal that this is running in a Windows environment and that we should run the tests') - (args, unknown_args) = parser.parse_known_args() + parser.add_argument('--nozmq', action='store_true', help='do not run the zmq tests') + args, unknown_args = parser.parse_known_args() # Create a set to store arguments and create the passon string tests = set(arg for arg in unknown_args if arg[:2] != "--") @@ -144,15 +146,15 @@ def main(): config = configparser.ConfigParser() config.read_file(open(os.path.dirname(__file__) + "/tests_config.ini")) - enable_wallet = config["components"]["ENABLE_WALLET"] == "True" - enable_utils = config["components"]["ENABLE_UTILS"] == "True" - enable_bitcoind = config["components"]["ENABLE_BITCOIND"] == "True" - enable_zmq = config["components"]["ENABLE_ZMQ"] == "True" and not args.nozmq + enable_wallet = config["components"].getboolean("ENABLE_WALLET") + enable_utils = config["components"].getboolean("ENABLE_UTILS") + enable_bitcoind = config["components"].getboolean("ENABLE_BITCOIND") + enable_zmq = config["components"].getboolean("ENABLE_ZMQ") and not args.nozmq - if config["environment"]["EXEEXT"] == ".exe" and not args.win: + if config["environment"]["EXEEXT"] == ".exe" and not args.force: # https://github.com/bitcoin/bitcoin/commit/d52802551752140cf41f0d9a225a43e84404d3e9 # https://github.com/bitcoin/bitcoin/pull/5677#issuecomment-136646964 - print("Win tests currently disabled by default. Use --win option to enable") + print("Tests currently disabled on Windows by default. Use --force option to enable") sys.exit(0) if not (enable_wallet and enable_utils and enable_bitcoind): @@ -170,12 +172,12 @@ def main(): raise # Build list of tests - if len(tests) != 0: + if tests: # Individual tests have been specified. Run specified tests that exist # in the ALL_SCRIPTS list. Accept the name with or without .py extension. test_list = [t for t in ALL_SCRIPTS if (t in tests or re.sub(".py$", "", t) in tests)] - if len(test_list) == 0: + if not test_list: print("No valid test scripts specified. Check that your test is in one " "of the test lists in rpc-tests.py or run rpc-tests.py with no arguments to run all tests") print("Scripts not found:") @@ -200,9 +202,9 @@ def main(): subprocess.check_call((config["environment"]["SRCDIR"] + '/qa/rpc-tests/' + test_list[0]).split() + ['-h']) sys.exit(0) - runtests(test_list, config["environment"]["SRCDIR"], config["environment"]["BUILDDIR"], config["environment"]["EXEEXT"], args.jobs, args.coverage, passon_args) + run_tests(test_list, config["environment"]["SRCDIR"], config["environment"]["BUILDDIR"], config["environment"]["EXEEXT"], args.jobs, args.coverage, passon_args) -def runtests(test_list, src_dir, build_dir, exeext, jobs=1, enable_coverage=False, args=[]): +def run_tests(test_list, src_dir, build_dir, exeext, jobs=1, enable_coverage=False, args=[]): BOLD = ("","") if os.name == 'posix': # primitive formatting on supported diff --git a/qa/pull-tester/tests_config.ini.in b/qa/pull-tester/tests_config.ini.in index 8317caaeb..e3e457d0b 100644 --- a/qa/pull-tester/tests_config.ini.in +++ b/qa/pull-tester/tests_config.ini.in @@ -5,13 +5,6 @@ # These environment variables are set by the build process and read by # rpc-tests.py -[DEFAULT] -# Provides default values for whether different components are enabled -ENABLE_WALLET=False -ENABLE_UTILS=False -ENABLE_BITCOIND=False -ENABLE_ZMQ=False - [environment] SRCDIR=@abs_top_srcdir@ BUILDDIR=@abs_top_builddir@ @@ -19,7 +12,7 @@ EXEEXT=@EXEEXT@ [components] # Which components are enabled. These are commented out by `configure` if they were disabled when running config. -@ENABLE_WALLET_TRUE@ENABLE_WALLET=True -@BUILD_BITCOIN_UTILS_TRUE@ENABLE_UTILS=True -@BUILD_BITCOIND_TRUE@ENABLE_BITCOIND=True -@ENABLE_ZMQ_TRUE@ENABLE_ZMQ=True +@ENABLE_WALLET_TRUE@ENABLE_WALLET=true +@BUILD_BITCOIN_UTILS_TRUE@ENABLE_UTILS=true +@BUILD_BITCOIND_TRUE@ENABLE_BITCOIND=true +@ENABLE_ZMQ_TRUE@ENABLE_ZMQ=true