mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 08:26:37 +02:00
Merge branch 'wip-MDL-50932-master' of git://github.com/marinaglancy/moodle
This commit is contained in:
commit
7d8edf67ae
2 changed files with 32 additions and 2 deletions
4
cache/stores/file/lib.php
vendored
4
cache/stores/file/lib.php
vendored
|
@ -341,8 +341,8 @@ class cachestore_file extends cache_store implements cache_is_key_aware, cache_i
|
||||||
$maxtime = cache::now() - $ttl;
|
$maxtime = cache::now() - $ttl;
|
||||||
}
|
}
|
||||||
$readfile = false;
|
$readfile = false;
|
||||||
if ($this->prescan && array_key_exists($key, $this->keys)) {
|
if ($this->prescan && array_key_exists($filename, $this->keys)) {
|
||||||
if (!$ttl || $this->keys[$filename] >= $maxtime && file_exists($file)) {
|
if ((!$ttl || $this->keys[$filename] >= $maxtime) && file_exists($file)) {
|
||||||
$readfile = true;
|
$readfile = true;
|
||||||
} else {
|
} else {
|
||||||
$this->delete($key);
|
$this->delete($key);
|
||||||
|
|
30
cache/stores/file/tests/file_test.php
vendored
30
cache/stores/file/tests/file_test.php
vendored
|
@ -44,4 +44,34 @@ class cachestore_file_test extends cachestore_tests {
|
||||||
protected function get_class_name() {
|
protected function get_class_name() {
|
||||||
return 'cachestore_file';
|
return 'cachestore_file';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Testing cachestore_file::get with prescan enabled and with
|
||||||
|
* deleting the cache between the prescan and the call to get.
|
||||||
|
*
|
||||||
|
* The deleting of cache simulates some other process purging
|
||||||
|
* the cache.
|
||||||
|
*/
|
||||||
|
public function test_cache_get_with_prescan_and_purge() {
|
||||||
|
global $CFG;
|
||||||
|
|
||||||
|
$definition = cache_definition::load_adhoc(cache_store::MODE_REQUEST, 'cachestore_file', 'phpunit_test');
|
||||||
|
$name = 'File test';
|
||||||
|
|
||||||
|
$path = make_cache_directory('cachestore_file_test');
|
||||||
|
$cache = new cachestore_file($name, array('path' => $path, 'prescan' => true));
|
||||||
|
$cache->initialise($definition);
|
||||||
|
|
||||||
|
$cache->set('testing', 'value');
|
||||||
|
|
||||||
|
$path = make_cache_directory('cachestore_file_test');
|
||||||
|
$cache = new cachestore_file($name, array('path' => $path, 'prescan' => true));
|
||||||
|
$cache->initialise($definition);
|
||||||
|
|
||||||
|
// Let's pretend that some other process purged caches.
|
||||||
|
remove_dir($CFG->cachedir.'/cachestore_file_test', true);
|
||||||
|
make_cache_directory('cachestore_file_test');
|
||||||
|
|
||||||
|
$cache->get('testing');
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue