mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-04-12 21:32:59 +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
src/allmydata
@ -139,9 +139,9 @@ class DownUpConnector(log.PrefixingLogMixin):
|
||||
res.append(nextbuf)
|
||||
ressize += len(nextbuf)
|
||||
if ressize > nrl:
|
||||
leftover = ressize - nrl
|
||||
self.bufs.appendleft(nextbuf[leftover:])
|
||||
res[-1] = nextbuf[:leftover]
|
||||
extra = ressize - nrl
|
||||
self.bufs.appendleft(nextbuf[:-extra])
|
||||
res[-1] = nextbuf[:-extra]
|
||||
self.bufsiz -= nrl
|
||||
if self.bufsiz < self.buflim and self.producer:
|
||||
self.producer.resumeProducing()
|
||||
|
@ -353,6 +353,20 @@ class DownUpConnector(unittest.TestCase):
|
||||
duc.write('\x02')
|
||||
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):
|
||||
def test_test_code(self):
|
||||
# The following process of stashing the shares, running
|
||||
|
Loading…
x
Reference in New Issue
Block a user