|
|
|
<?php
|
|
|
|
namespace yiiunit\framework\caching;
|
|
|
|
|
|
|
|
use yii\caching\MemCache;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class for testing memcached cache backend
|
|
|
|
* @group memcached
|
|
|
|
* @group caching
|
|
|
|
*/
|
|
|
|
class MemCachedTest extends CacheTestCase
|
|
|
|
{
|
|
|
|
private $_cacheInstance = null;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return MemCache
|
|
|
|
*/
|
|
|
|
protected function getCacheInstance()
|
|
|
|
{
|
|
|
|
if (!extension_loaded("memcached")) {
|
|
|
|
$this->markTestSkipped("memcached not installed. Skipping.");
|
|
|
|
}
|
|
|
|
|
|
|
|
// check whether memcached is running and skip tests if not.
|
|
|
|
if (!@stream_socket_client('127.0.0.1:11211', $errorNumber, $errorDescription, 0.5)) {
|
|
|
|
$this->markTestSkipped('No redis server running at ' . '127.0.0.1:11211' . ' : ' . $errorNumber . ' - ' . $errorDescription);
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($this->_cacheInstance === null) {
|
|
|
|
$this->_cacheInstance = new MemCache(['useMemcached' => true]);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $this->_cacheInstance;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testExpire()
|
|
|
|
{
|
|
|
|
if (getenv('TRAVIS') == 'true') {
|
|
|
|
$this->markTestSkipped('Can not reliably test memcached expiry on travis-ci.');
|
|
|
|
}
|
|
|
|
parent::testExpire();
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testExpireAdd()
|
|
|
|
{
|
|
|
|
if (getenv('TRAVIS') == 'true') {
|
|
|
|
$this->markTestSkipped('Can not reliably test memcached expiry on travis-ci.');
|
|
|
|
}
|
|
|
|
parent::testExpireAdd();
|
|
|
|
}
|
|
|
|
}
|