mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-07 20:00:20 +00:00
immutable: test: add a test after attempting to repair from corruption: does a full verify run give the file a clean bill of health? If not, the you haven't successfully repaired it.
This will make the repairer tests more consistent -- less accidentally passing due to getting lucky.
This commit is contained in:
parent
4091f73f34
commit
bbf48f4a88
@ -434,15 +434,24 @@ class Repairer(common.ShareManglingMixin, unittest.TestCase):
|
|||||||
shares = self.find_shares()
|
shares = self.find_shares()
|
||||||
self.failIf(len(shares) < 10)
|
self.failIf(len(shares) < 10)
|
||||||
|
|
||||||
|
# Now we assert that the verifier reports the file as healthy.
|
||||||
|
d3 = self.filenode.check(Monitor(), verify=True)
|
||||||
|
def _after_verify(verifyresults):
|
||||||
|
self.failUnless(verifyresults.is_healthy())
|
||||||
|
d3.addCallback(_after_verify)
|
||||||
|
|
||||||
# Now we delete seven of the other shares, then try to
|
# Now we delete seven of the other shares, then try to
|
||||||
# download the file and assert that it succeeds at
|
# download the file and assert that it succeeds at
|
||||||
# downloading and has the right contents. This can't work
|
# downloading and has the right contents. This can't work
|
||||||
# unless it has already repaired the previously-deleted share
|
# unless it has already repaired the previously-deleted share
|
||||||
# #2.
|
# #2.
|
||||||
for sharenum in range(3, 10):
|
def _then_delete_7_and_try_a_download(unused=None):
|
||||||
self._delete_a_share(sharenum=sharenum)
|
for sharenum in range(3, 10):
|
||||||
|
self._delete_a_share(sharenum=sharenum)
|
||||||
|
|
||||||
return self._download_and_check_plaintext()
|
return self._download_and_check_plaintext()
|
||||||
|
d3.addCallback(_then_delete_7_and_try_a_download)
|
||||||
|
return d3
|
||||||
|
|
||||||
d2.addCallback(_after_repair)
|
d2.addCallback(_after_repair)
|
||||||
return d2
|
return d2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user