From 74c6beb603f18d51d92730bb631bfe77d8feb400 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 6 Nov 2019 12:05:46 +0100 Subject: 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 --- tests/lib/Files/Cache/PropagatorTest.php | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests/lib/Files') 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'); -- cgit v1.2.3