diff options
author | Robin McCorkell <rmccorkell@owncloud.com> | 2015-09-05 20:02:49 +0100 |
---|---|---|
committer | Robin McCorkell <rmccorkell@owncloud.com> | 2015-09-05 20:02:49 +0100 |
commit | b64e3f8db609b1f65ec23f467da7488abf92c05a (patch) | |
tree | 82b086de95f9ee46e6b003c425ddf9b995e4d97b /tests/lib/memcache | |
parent | f3b8634058db07555b31a8fde8e02d4eb6201dae (diff) | |
download | nextcloud-server-b64e3f8db609b1f65ec23f467da7488abf92c05a.tar.gz nextcloud-server-b64e3f8db609b1f65ec23f467da7488abf92c05a.zip |
Fallback to complete Memcached flush if getAllKeys fails
Newer Memcached's do not support the underlying protocol commands that
getAllKeys() is implemented with. We should fallback to clearing
everything in that case, as causing (temporary) performance problems for
other applications on the server is better than having stale cached data.
Diffstat (limited to 'tests/lib/memcache')
-rw-r--r-- | tests/lib/memcache/memcached.php | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/lib/memcache/memcached.php b/tests/lib/memcache/memcached.php index 51a78996dd4..3ea9216029a 100644 --- a/tests/lib/memcache/memcached.php +++ b/tests/lib/memcache/memcached.php @@ -26,4 +26,27 @@ class Memcached extends Cache { parent::setUp(); $this->instance = new \OC\Memcache\Memcached($this->getUniqueID()); } + + public function testClear() { + // Memcached is sometimes broken with clear(), so we don't test it thoroughly + $value='ipsum lorum'; + $this->instance->set('1_value1', $value); + $this->instance->set('1_value2', $value); + $this->instance->set('2_value1', $value); + $this->instance->set('3_value1', $value); + + $this->assertTrue($this->instance->clear('1_')); + + $this->assertFalse($this->instance->hasKey('1_value1')); + $this->assertFalse($this->instance->hasKey('1_value2')); + //$this->assertTrue($this->instance->hasKey('2_value1')); + //$this->assertTrue($this->instance->hasKey('3_value1')); + + $this->assertTrue($this->instance->clear()); + + $this->assertFalse($this->instance->hasKey('1_value1')); + $this->assertFalse($this->instance->hasKey('1_value2')); + $this->assertFalse($this->instance->hasKey('2_value1')); + $this->assertFalse($this->instance->hasKey('3_value1')); + } } |