. * */ namespace Friendica\Test\src\Core\Lock; use Exception; use Friendica\Core\Cache\MemcacheCache; use Friendica\Core\Config\IConfig; use Friendica\Core\Lock\CacheLock; use Mockery; /** * @requires extension Memcache * @group MEMCACHE */ class MemcacheCacheLockTest extends LockTest { protected function getInstance() { $configMock = Mockery::mock(IConfig::class); $host = $_SERVER['MEMCACHE_HOST'] ?? 'localhost'; $port = $_SERVER['MEMCACHE_PORT'] ?? '11211'; $configMock ->shouldReceive('get') ->with('system', 'memcache_host') ->andReturn($host); $configMock ->shouldReceive('get') ->with('system', 'memcache_port') ->andReturn($port); $lock = null; try { $cache = new MemcacheCache($host, $configMock); $lock = new CacheLock($cache); } catch (Exception $e) { static::markTestSkipped('Memcache is not available'); } return $lock; } /** * @small * @doesNotPerformAssertions */ public function testGetLocks() { static::markTestIncomplete('Race condition because of too fast getAllKeys() which uses a workaround'); } /** * @small * @doesNotPerformAssertions */ public function testGetLocksWithPrefix() { static::markTestIncomplete('Race condition because of too fast getAllKeys() which uses a workaround'); } }