mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-06-11 03:52:00 +00:00
immutable: repairer: add a simple test to exercise the "leftover" code path, fix the bug (and rename the variable "leftover" to "extra")
This commit is contained in:
parent
3fa19973e4
commit
ef1bfdd2bf
@ -139,9 +139,9 @@ class DownUpConnector(log.PrefixingLogMixin):
|
|||||||
res.append(nextbuf)
|
res.append(nextbuf)
|
||||||
ressize += len(nextbuf)
|
ressize += len(nextbuf)
|
||||||
if ressize > nrl:
|
if ressize > nrl:
|
||||||
leftover = ressize - nrl
|
extra = ressize - nrl
|
||||||
self.bufs.appendleft(nextbuf[leftover:])
|
self.bufs.appendleft(nextbuf[:-extra])
|
||||||
res[-1] = nextbuf[:leftover]
|
res[-1] = nextbuf[:-extra]
|
||||||
self.bufsiz -= nrl
|
self.bufsiz -= nrl
|
||||||
if self.bufsiz < self.buflim and self.producer:
|
if self.bufsiz < self.buflim and self.producer:
|
||||||
self.producer.resumeProducing()
|
self.producer.resumeProducing()
|
||||||
|
@ -353,6 +353,20 @@ class DownUpConnector(unittest.TestCase):
|
|||||||
duc.write('\x02')
|
duc.write('\x02')
|
||||||
return d
|
return d
|
||||||
|
|
||||||
|
def test_leftovers(self):
|
||||||
|
duc = repairer.DownUpConnector()
|
||||||
|
duc.registerProducer(None, True) # just because you have to call registerProducer first
|
||||||
|
# case 1: total data in buf is < requested data at time of request
|
||||||
|
duc.write('\x01')
|
||||||
|
d = duc.read_encrypted(2, False)
|
||||||
|
def _then(data):
|
||||||
|
self.failUnlessEqual(len(data), 2)
|
||||||
|
self.failUnlessEqual(data[0], '\x01')
|
||||||
|
self.failUnlessEqual(data[1], '\x02')
|
||||||
|
d.addCallback(_then)
|
||||||
|
duc.write('\x02\0x03')
|
||||||
|
return d
|
||||||
|
|
||||||
class Repairer(common.ShareManglingMixin, unittest.TestCase):
|
class Repairer(common.ShareManglingMixin, unittest.TestCase):
|
||||||
def test_test_code(self):
|
def test_test_code(self):
|
||||||
# The following process of stashing the shares, running
|
# The following process of stashing the shares, running
|
||||||
|
Loading…
x
Reference in New Issue
Block a user