fuse/runtests: add overlapping write tests
authorrobk-tahoe <robk-tahoe@allmydata.com>
Fri, 3 Oct 2008 22:48:33 +0000 (15:48 -0700)
committerrobk-tahoe <robk-tahoe@allmydata.com>
Fri, 3 Oct 2008 22:48:33 +0000 (15:48 -0700)
commit0c25628deda34694917b0e2928ccc4e9d9ed566c
treec8b0644ea0c8d278e7c4bac8201a999f1e478d4a
parent50986dc1e08a18a4f254155c6e9786fbe09a3ec1
fuse/runtests: add overlapping write tests

using both small and large blocksizes for writes, write a 1Mb file to fuse
where every write overlaps another.

This serves a useful purpose - in manual testing of blackmatch some time ago
most operations e.g. bulk copies, worked fine, but using rsync caused data
corruption on most files.  it turned out to be that rsync writes in 64K blocks,
but rather than making the last block short, the last block instead overlaps
the preceding (already written) block.  This revealed a problem where cache
files were being opened 'append' rather than 'write' and hence the overlapping
write to the fuse layer caused the overlapping portion of the file to be
duplicated in cache, leading to oversized and corrupt files being uploaded.
contrib/fuse/runtests.py