Mercurial > hg
annotate tests/sitecustomize.py @ 42193:14589f1989e9 stable
context: check file exists before getting data from _wrappedctx
overlayworkingctx class is used to do in-memory merging. The data() function of
that class has logic to look for data() in the wrappedctx if the file data in
cache is empty and if the file is dirty. This assumes that if a file is dirty
and cache has empty data for it, it will exists in the _wrappedctx.
However this assumption can be False in case when we are merging a file which is
empty in destination. In these cases, the backup file 'foo.orig' created by our
internal merge algorithms will be empty, however it won't be present in
_wrappedctx. This case will lead us to error like the one this patch is fixing.
Let's only fallback to getting data from wrappedctx if cache has 'None' as data.
Differential Revision: https://phab.mercurial-scm.org/D6308
author | Pulkit Goyal <pulkit@yandex-team.ru> |
---|---|
date | Wed, 24 Apr 2019 19:42:43 +0300 |
parents | d2c40510104e |
children | 2372284d9457 |
rev | line source |
---|---|
28946
b12bda49c3e3
py3: use absolute_import in sitecustomize.py
Robert Stanca <robert.stanca7@gmail.com>
parents:
24505
diff
changeset
|
1 from __future__ import absolute_import |
24505
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
2 import os |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
3 |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
4 if os.environ.get('COVERAGE_PROCESS_START'): |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
5 try: |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
6 import coverage |
30477
d2c40510104e
tests: update sitecustomize to use uuid1() instead of randrange()
Augie Fackler <augie@google.com>
parents:
28946
diff
changeset
|
7 import uuid |
24505
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
8 |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
9 covpath = os.path.join(os.environ['COVERAGE_DIR'], |
30477
d2c40510104e
tests: update sitecustomize to use uuid1() instead of randrange()
Augie Fackler <augie@google.com>
parents:
28946
diff
changeset
|
10 'cov.%s' % uuid.uuid1()) |
24505
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
11 cov = coverage.coverage(data_file=covpath, auto_data=True) |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
12 cov._warn_no_data = False |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
13 cov._warn_unimported_source = False |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
14 cov.start() |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
15 except ImportError: |
031947baf4d0
run-tests: collect aggregate code coverage
Gregory Szorc <gregory.szorc@gmail.com>
parents:
14971
diff
changeset
|
16 pass |