HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //usr/share/pear/test/memcached/tests/callback_exception_2.phpt
--TEST--
Callback initializer throws and dies
--SKIPIF--
<?php if (!extension_loaded("memcached")) print "skip"; ?>
--FILE--
<?php 

function init_cb($m, $id) {
	echo "ran throwing cb\n";
	var_dump($m->isPersistent());
	throw new RuntimeException('Cb exception');
}

function init_cb_die($m, $id) {
	echo "ran quitting cb\n";
	die("quit in cb");
}

error_reporting(0);

echo "cb with exception\n";
try {
	$m1 = new Memcached(null, 'init_cb');
} catch (RuntimeException $e) {
	echo $e->getMessage(), "\n";
}

echo "cb persistent with exception\n";
try {
	$m2 = new Memcached('foo', 'init_cb');
} catch (RuntimeException $e) {
	echo $e->getMessage(), "\n";
}

echo "cb persistent dies\n";
try {
	$m3 = new Memcached('bar', 'init_cb_die');
} catch (RuntimeException $e) {
	echo $e->getMessage(), "\n";
}
echo "not run\n";

--EXPECT--
cb with exception
ran throwing cb
bool(false)
Cb exception
cb persistent with exception
ran throwing cb
bool(true)
Cb exception
cb persistent dies
ran quitting cb
quit in cb