Files
php-memcached/tests/touch_binary.phpt
Mikko d142a68dfe Refactor tests to configure server address in one place.
Also flush server every time so that we start from a clean slate
2013-11-20 00:34:15 +08:00

69 lines
1.5 KiB
PHP

--TEST--
Touch in binary mode
--SKIPIF--
<?php if (!extension_loaded("memcached")) print "skip";
if (Memcached::LIBMEMCACHED_VERSION_HEX < 0x01000016) die ('skip too old libmemcached');
?>
--FILE--
<?php
function resolve_to_constant ($code)
{
$refl = new ReflectionClass ('memcached');
$c = $refl->getConstants ();
foreach ($c as $name => $value) {
if (strpos ($name, 'RES_') === 0 && $value == $code)
return $name;
}
}
function status_print ($op, $mem, $expected)
{
$code = $mem->getResultcode();
if ($code == $expected)
echo "${op} status code as expected" . PHP_EOL;
else {
$expected = resolve_to_constant ($expected);
$code = resolve_to_constant ($code);
echo "${op} status code mismatch, expected ${expected} but got ${code}" . PHP_EOL;
}
}
include dirname (__FILE__) . '/config.inc';
$mem = memc_get_instance (array (Memcached::OPT_BINARY_PROTOCOL => true));
$key = uniqid ('touch_t_');
$mem->get($key);
status_print ('get', $mem, Memcached::RES_NOTFOUND);
$mem->set ($key, 1);
status_print ('set', $mem, Memcached::RES_SUCCESS);
$mem->get($key);
status_print ('get', $mem, Memcached::RES_SUCCESS);
$mem->touch ($key, 10);
status_print ('touch', $mem, Memcached::RES_SUCCESS);
$mem->get($key);
status_print ('get', $mem, Memcached::RES_SUCCESS);
$mem->get($key);
status_print ('get', $mem, Memcached::RES_SUCCESS);
echo "OK\n";
?>
--EXPECT--
get status code as expected
set status code as expected
get status code as expected
touch status code as expected
get status code as expected
get status code as expected
OK