mercurial/testing/__init__.py
author |
Gregory Szorc <gregory.szorc@gmail.com> |
|
Wed, 03 Oct 2018 10:56:48 -0700 |
changeset 40051 |
cdf61ab1f54c |
parent 39772 |
ae531f5e583c
|
child 46984 |
99c629101b73 |
permissions |
-rw-r--r-- |
testing: add file storage integration for bad hashes and censoring
In order to implement these tests, we need a backdoor to write data
into storage backends while bypassing normal checks. We invent a
callable to do that.
As part of writing the tests, I found a bug with censorrevision()
pretty quickly! After calling censorrevision(), attempting to
access revision data for an affected node raises a cryptic error
related to malformed compression. This appears to be due to the
revlog not adjusting delta chains as part of censoring.
I also found a bug with regards to hash verification and revision
fulltext caching. Essentially, we cache the fulltext before hash
verification. If we look up the fulltext after a failed hash
verification, we don't get a hash verification exception. Furthermore,
the behavior of revision(raw=True) can be inconsistent depending on
the order of operations.
I'll be fixing both these bugs in subsequent commits.
Differential Revision: https://phab.mercurial-scm.org/D4865