# HG changeset patch # User Mads Kiilerich # Date 2014-02-28 01:09:00 # Node ID 3d1d16b19e7dd5e96e242daed86512429bc1d3f6 # Parent f8e531a3a77cfe8aca930e60e66b5c25122a689e tests: add run-tests --changed option for running tests changed in revisions Convenient when polishing patches and changing details of how they change test output. This will probably break in weird ways for revsets with special quoting ... but it is good enough for run-tests. Usage example: yes | ./run-tests.py -li --changed qparent diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -141,6 +141,8 @@ def parseargs(): help="skip tests listed in the specified blacklist file") parser.add_option("--whitelist", action="append", help="always run tests listed in the specified whitelist file") + parser.add_option("--changed", type="string", + help="run tests that are changed in parent rev or working directory") parser.add_option("-C", "--annotate", action="store_true", help="output files annotated with coverage") parser.add_option("-c", "--cover", action="store_true", @@ -1181,7 +1183,13 @@ def main(): checktools() if not args: - args = os.listdir(".") + if options.changed: + proc = Popen4('hg st --rev "%s" -man0 .' % options.changed, + None, 0) + stdout, stderr = proc.communicate() + args = stdout.strip('\0').split('\0') + else: + args = os.listdir(".") tests = [t for t in args if t.startswith("test-")