diff options
author | Robin Appelman <robin@icewind.nl> | 2019-11-06 12:05:46 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2019-11-26 12:05:30 +0100 |
commit | 74c6beb603f18d51d92730bb631bfe77d8feb400 (patch) | |
tree | d2c614c737aef1eb5daef05beb108aafa136f00b /tests | |
parent | 9e450d727a2374c218cdd62c1c97b5ad7ebf48a8 (diff) | |
download | nextcloud-server-74c6beb603f18d51d92730bb631bfe77d8feb400.tar.gz nextcloud-server-74c6beb603f18d51d92730bb631bfe77d8feb400.zip |
dont set folder size to negative values during propagation
normally this shouldn't be a problem, but cache/storage desync might cause this
so this adds some failsafe to ensure we dont corrupt the cache further
the minimum value is set to -1 instead of 0 in order to triger a background scan
on the folder and figure out the size properly
Signed-off-by: Robin Appelman <robin@icewind.nl>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lib/Files/Cache/PropagatorTest.php | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/lib/Files/Cache/PropagatorTest.php b/tests/lib/Files/Cache/PropagatorTest.php index 402b29c8c3e..bcd808a8402 100644 --- a/tests/lib/Files/Cache/PropagatorTest.php +++ b/tests/lib/Files/Cache/PropagatorTest.php @@ -81,6 +81,17 @@ class PropagatorTest extends TestCase { } } + public function testSizePropagationNoNegative() { + $paths = ['', 'foo', 'foo/bar']; + $oldInfos = $this->getFileInfos($paths); + $this->storage->getPropagator()->propagateChange('foo/bar/file.txt', time(), -100); + $newInfos = $this->getFileInfos($paths); + + foreach ($oldInfos as $i => $oldInfo) { + $this->assertEquals(-1, $newInfos[$i]->getSize()); + } + } + public function testBatchedPropagation() { $this->storage->mkdir('foo/baz'); $this->storage->mkdir('asd'); |