Merge branch 'MDL-76745_401_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_401_STABLE

This commit is contained in:
Jun Pataleta 2023-06-07 22:53:45 +08:00
commit 3b8e3ba59e
2 changed files with 25 additions and 6 deletions

22
cache/disabledlib.php vendored
View File

@ -39,7 +39,7 @@ require_once($CFG->dirroot.'/cache/locallib.php');
* @copyright 2012 Sam Hemelryk
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class cache_disabled extends cache {
class cache_disabled extends cache implements cache_loader_with_locking {
/**
* Constructs the cache.
@ -204,20 +204,30 @@ class cache_disabled extends cache {
/**
* Pretend that we got a lock to avoid errors.
*
* @param string $key
* @param int|string $key
* @return bool
*/
public function acquire_lock(string $key) : bool {
public function acquire_lock($key) : bool {
return true;
}
/**
* Pretend that we released a lock to avoid errors.
*
* @param string $key
* @return void
* @param int|string $key
* @return bool
*/
public function release_lock(string $key) : bool {
public function release_lock($key) : bool {
return true;
}
/**
* Pretend that we have a lock to avoid errors.
*
* @param int|string $key
* @return bool
*/
public function check_lock_state($key) : bool {
return true;
}
}

View File

@ -1426,6 +1426,15 @@ class cache_test extends \advanced_testcase {
$this->assertFalse($cache->set_versioned('v', 1, 'data'));
$this->assertFalse($cache->delete('test'));
$this->assertTrue($cache->purge());
// Checking a lock should always report that we have one.
// Acquiring or releasing a lock should always report success.
$this->assertTrue($cache->check_lock_state('test'));
$this->assertTrue($cache->acquire_lock('test'));
$this->assertTrue($cache->acquire_lock('test'));
$this->assertTrue($cache->check_lock_state('test'));
$this->assertTrue($cache->release_lock('test'));
$this->assertTrue($cache->release_lock('test'));
$this->assertTrue($cache->check_lock_state('test'));
// Test a session cache.
$cache = cache::make_from_params(cache_store::MODE_SESSION, 'phpunit', 'disable');