changeset 26709:291b5c0b7964

Merge #9766: Add --exclude option to rpc-tests.py c578408 Add exclude option to rpc-tests.py (John Newbery)
author MarcoFalke <falke.marco@gmail.com>
date Thu, 23 Feb 2017 16:33:34 +0100
parents 48e57083107f 23648ae6294f
children bc5c4f570315
files
diffstat 1 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/qa/pull-tester/rpc-tests.py	Thu Feb 23 10:48:11 2017 +0100
+++ b/qa/pull-tester/rpc-tests.py	Thu Feb 23 16:33:34 2017 +0100
@@ -133,6 +133,7 @@
     Help text and arguments for individual test script:''',
                                      formatter_class=argparse.RawTextHelpFormatter)
     parser.add_argument('--coverage', action='store_true', help='generate a basic coverage report for the RPC interface')
+    parser.add_argument('--exclude', '-x', help='specify a comma-seperated-list of scripts to exclude. Do not include the .py extension in the name.')
     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')
@@ -179,13 +180,6 @@
         # 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 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:")
-            print(tests)
-            sys.exit(0)
-
     else:
         # No individual tests have been specified. Run base tests, and
         # optionally ZMQ tests and extended tests.
@@ -198,6 +192,17 @@
             # (for parallel running efficiency). This combined list will is no
             # longer sorted.
 
+    # Remove the test cases that the user has explicitly asked to exclude.
+    if args.exclude:
+        for exclude_test in args.exclude.split(','):
+            if exclude_test + ".py" in test_list:
+                test_list.remove(exclude_test + ".py")
+
+    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")
+        sys.exit(0)
+
     if args.help:
         # Print help for rpc-tests.py, then print help of the first script and exit.
         parser.print_help()