Commit 0868e496 authored by Thomas Müller's avatar Thomas Müller
Browse files

Merge pull request #14980 from owncloud/fix-fileglobalgc

Fix fileglobalgc unlink parameter warnings
parents e40b0701 693ca9a9
......@@ -6,6 +6,9 @@ use OC\BackgroundJob\Job;
use OCP\IConfig;
class FileGlobalGC extends Job {
// only do cleanup every 5 minutes
const CLEANUP_TTL_SEC = 300;
public function run($argument) {
$this->gc(\OC::$server->getConfig(), $this->getCacheDir());
}
......@@ -39,8 +42,7 @@ class FileGlobalGC extends Job {
public function gc(IConfig $config, $cacheDir) {
$lastRun = $config->getAppValue('core', 'global_cache_gc_lastrun', 0);
$now = time();
if (($now - $lastRun) < 300) {
// only do cleanup every 5 minutes
if (($now - $lastRun) < self::CLEANUP_TTL_SEC) {
return;
}
$config->setAppValue('core', 'global_cache_gc_lastrun', $now);
......@@ -48,6 +50,8 @@ class FileGlobalGC extends Job {
return;
}
$paths = $this->getExpiredPaths($cacheDir, $now);
array_walk($paths, 'unlink');
array_walk($paths, function($file) {
unlink($file);
});
}
}
......@@ -70,4 +70,38 @@ class FileGlobalGC extends TestCase {
mkdir($this->cacheDir . 'asd');
$this->assertEquals([$this->cacheDir . 'foo'], $this->gc->getExpiredPaths($this->cacheDir, $time));
}
public function testGcUnlink() {
$time = time();
$this->addCacheFile('foo', $time - 10);
$this->addCacheFile('bar', $time - 10);
$this->addCacheFile('asd', $time + 10);
$config = $this->getMock('\OCP\IConfig');
$config->expects($this->once())
->method('getAppValue')
->with('core', 'global_cache_gc_lastrun', 0)
->willReturn($time - \OC\Cache\FileGlobalGC::CLEANUP_TTL_SEC - 1);
$config->expects($this->once())
->method('setAppValue');
$this->gc->gc($config, $this->cacheDir);
$this->assertFileNotExists($this->cacheDir . 'foo');
$this->assertFileNotExists($this->cacheDir . 'bar');
$this->assertFileExists($this->cacheDir . 'asd');
}
public function testGcLastRun() {
$time = time();
$config = $this->getMock('\OCP\IConfig');
$config->expects($this->once())
->method('getAppValue')
->with('core', 'global_cache_gc_lastrun', 0)
->willReturn($time);
$config->expects($this->never())
->method('setAppValue');
$this->gc->gc($config, $this->cacheDir);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment