D578: run-tests: allow bisecting a different repo
quark (Jun Wu)
phabricator at mercurial-scm.org
Fri Sep 1 13:57:59 UTC 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG40313c63da87: run-tests: allow bisecting a different repo (authored by quark).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D578?vs=1465&id=1536
REVISION DETAIL
https://phab.mercurial-scm.org/D578
AFFECTED FILES
tests/run-tests.py
tests/test-run-tests.t
CHANGE DETAILS
diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t
--- a/tests/test-run-tests.t
+++ b/tests/test-run-tests.t
@@ -1285,6 +1285,58 @@
$ cd ..
+support bisecting a separate repo
+
+ $ hg init bisect-dependent
+ $ cd bisect-dependent
+ $ cat > test-bisect-dependent.t <<EOF
+ > $ tail -1 \$TESTDIR/../bisect/test-bisect.t
+ > pass
+ > EOF
+ $ hg commit -Am dependent test-bisect-dependent.t
+
+ $ rt --known-good-rev=0 test-bisect-dependent.t
+
+ --- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
+ +++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
+ @@ -1,2 +1,2 @@
+ $ tail -1 $TESTDIR/../bisect/test-bisect.t
+ - pass
+ + fail
+
+ ERROR: test-bisect-dependent.t output changed
+ !
+ Failed test-bisect-dependent.t: output changed
+ Failed to identify failure point for test-bisect-dependent.t
+ # Ran 1 tests, 0 skipped, 1 failed.
+ python hash seed: * (glob)
+ [1]
+
+ $ rt --bisect-repo=../test-bisect test-bisect-dependent.t
+ Usage: run-tests.py [options] [tests]
+
+ run-tests.py: error: --bisect-repo cannot be used without --known-good-rev
+ [2]
+
+ $ rt --known-good-rev=0 --bisect-repo=../bisect test-bisect-dependent.t
+
+ --- $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t
+ +++ $TESTTMP/anothertests/bisect-dependent/test-bisect-dependent.t.err
+ @@ -1,2 +1,2 @@
+ $ tail -1 $TESTDIR/../bisect/test-bisect.t
+ - pass
+ + fail
+
+ ERROR: test-bisect-dependent.t output changed
+ !
+ Failed test-bisect-dependent.t: output changed
+ test-bisect-dependent.t broken by 72cbf122d116 (bad)
+ # Ran 1 tests, 0 skipped, 1 failed.
+ python hash seed: * (glob)
+ [1]
+
+ $ cd ..
+
Test a broken #if statement doesn't break run-tests threading.
==============================================================
$ mkdir broken
diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -406,6 +406,10 @@
metavar="known_good_rev",
help=("Automatically bisect any failures using this "
"revision as a known-good revision."))
+ parser.add_option('--bisect-repo', type="string",
+ metavar='bisect_repo',
+ help=("Path of a repo to bisect. Use together with "
+ "--known-good-rev"))
for option, (envvar, default) in defaults.items():
defaults[option] = type(default)(os.environ.get(envvar, default))
@@ -458,6 +462,9 @@
sys.stderr.write('warning: --color=always ignored because '
'pygments is not installed\n')
+ if options.bisect_repo and not options.known_good_rev:
+ parser.error("--bisect-repo cannot be used without --known-good-rev")
+
global useipv6
if options.ipv6:
useipv6 = checksocketfamily('AF_INET6')
@@ -2071,6 +2078,9 @@
if failed and self._runner.options.known_good_rev:
bisectcmd = ['hg', 'bisect']
+ bisectrepo = self._runner.options.bisect_repo
+ if bisectrepo:
+ bisectcmd.extend(['-R', os.path.abspath(bisectrepo)])
def nooutput(args):
p = subprocess.Popen(args, stderr=subprocess.STDOUT,
stdout=subprocess.PIPE)
To: quark, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list