summaryrefslogtreecommitdiffstats
path: root/tests/lib/Memcache
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2017-04-20 12:23:34 +0200
committerJoas Schilling <coding@schilljs.com>2017-04-20 12:23:34 +0200
commit24789ba0f4b6961adce71fca1dc58b847d1e5e22 (patch)
tree4929a94c4c07821c4ef8bc78988d37ad38823453 /tests/lib/Memcache
parent38c901fadfdd116d0597428789eb3963e200f9d4 (diff)
downloadnextcloud-server-24789ba0f4b6961adce71fca1dc58b847d1e5e22.tar.gz
nextcloud-server-24789ba0f4b6961adce71fca1dc58b847d1e5e22.zip
Restoring the error handler within the error handler causes unexpected results
See http://php.net/manual/en/function.restore-error-handler.php#120879 for more information. Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'tests/lib/Memcache')
-rw-r--r--tests/lib/Memcache/RedisTest.php13
1 files changed, 10 insertions, 3 deletions
diff --git a/tests/lib/Memcache/RedisTest.php b/tests/lib/Memcache/RedisTest.php
index 094954d4a1a..e707f30fb5b 100644
--- a/tests/lib/Memcache/RedisTest.php
+++ b/tests/lib/Memcache/RedisTest.php
@@ -17,15 +17,22 @@ class RedisTest extends Cache {
self::markTestSkipped('The redis extension is not available.');
}
+ $errorOccurred = false;
set_error_handler(
function($errno, $errstr) {
- restore_error_handler();
- self::markTestSkipped($errstr);
+ throw new \RuntimeException($errstr, 123456789);
},
E_WARNING
);
- $instance = new \OC\Memcache\Redis(self::getUniqueID());
+ try {
+ $instance = new \OC\Memcache\Redis(self::getUniqueID());
+ } catch (\RuntimeException $e) {
+ $errorOccurred = $e->getCode() === 123456789 ? $e->getMessage() : false;
+ }
restore_error_handler();
+ if ($errorOccurred !== false) {
+ self::markTestSkipped($errorOccurred);
+ }
if ($instance->set(self::getUniqueID(), self::getUniqueID()) === false) {
self::markTestSkipped('redis server seems to be down.');