Add unit tests for gc() for \OC\Cache\FileGlobalGC
This commit is contained in:
parent
42fcd0e8b7
commit
693ca9a92f
|
@ -6,6 +6,9 @@ use OC\BackgroundJob\Job;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
|
|
||||||
class FileGlobalGC extends Job {
|
class FileGlobalGC extends Job {
|
||||||
|
// only do cleanup every 5 minutes
|
||||||
|
const CLEANUP_TTL_SEC = 300;
|
||||||
|
|
||||||
public function run($argument) {
|
public function run($argument) {
|
||||||
$this->gc(\OC::$server->getConfig(), $this->getCacheDir());
|
$this->gc(\OC::$server->getConfig(), $this->getCacheDir());
|
||||||
}
|
}
|
||||||
|
@ -39,8 +42,7 @@ class FileGlobalGC extends Job {
|
||||||
public function gc(IConfig $config, $cacheDir) {
|
public function gc(IConfig $config, $cacheDir) {
|
||||||
$lastRun = $config->getAppValue('core', 'global_cache_gc_lastrun', 0);
|
$lastRun = $config->getAppValue('core', 'global_cache_gc_lastrun', 0);
|
||||||
$now = time();
|
$now = time();
|
||||||
if (($now - $lastRun) < 300) {
|
if (($now - $lastRun) < self::CLEANUP_TTL_SEC) {
|
||||||
// only do cleanup every 5 minutes
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$config->setAppValue('core', 'global_cache_gc_lastrun', $now);
|
$config->setAppValue('core', 'global_cache_gc_lastrun', $now);
|
||||||
|
|
|
@ -70,4 +70,38 @@ class FileGlobalGC extends TestCase {
|
||||||
mkdir($this->cacheDir . 'asd');
|
mkdir($this->cacheDir . 'asd');
|
||||||
$this->assertEquals([$this->cacheDir . 'foo'], $this->gc->getExpiredPaths($this->cacheDir, $time));
|
$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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue