b64e3f8db6
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.
52 lines
1.6 KiB
PHP
52 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
* later.
|
|
* See the COPYING-README file.
|
|
*/
|
|
|
|
namespace Test\Memcache;
|
|
|
|
class Memcached extends Cache {
|
|
static public function setUpBeforeClass() {
|
|
parent::setUpBeforeClass();
|
|
|
|
if (!\OC\Memcache\Memcached::isAvailable()) {
|
|
self::markTestSkipped('The memcached extension is not available.');
|
|
}
|
|
$instance = new \OC\Memcache\Memcached(self::getUniqueID());
|
|
if ($instance->set(self::getUniqueID(), self::getUniqueID()) === false) {
|
|
self::markTestSkipped('memcached server seems to be down.');
|
|
}
|
|
}
|
|
|
|
protected function setUp() {
|
|
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'));
|
|
}
|
|
}
|