From b64e3f8db609b1f65ec23f467da7488abf92c05a Mon Sep 17 00:00:00 2001 From: Robin McCorkell Date: Sat, 5 Sep 2015 20:02:49 +0100 Subject: 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. --- tests/lib/memcache/memcached.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests') 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')); + } } -- cgit v1.2.3