PATH:
opt
/
alt
/
tests
/
alt-php84-pecl-memcached_3.2.0-2.el8
/
tests
--TEST-- Memcached user flags --SKIPIF-- <?php include "skipif.inc";?> --FILE-- <?php function check_flags ($flags, $expected_flags) { foreach ($expected_flags as $f) { if (($flags & $f) != $f) { echo "Flag {$f} is not set" . PHP_EOL; return; } } echo "Flags OK" . PHP_EOL; } function get_flags($m, $key) { return $m->get($key, null, Memcached::GET_EXTENDED)['flags']; } define ('FLAG_1', 1); define ('FLAG_2', 2); define ('FLAG_4', 4); define ('FLAG_32', 32); define ('FLAG_64', 64); define ('FLAG_TOO_LARGE', pow(2, 16)); include dirname (__FILE__) . '/config.inc'; $m = memc_get_instance (array (Memcached::OPT_BINARY_PROTOCOL => true)); $key = uniqid ('udf_test_'); // Set with flags off $m->set ($key, '1', 10); $v = $m->get($key, null, Memcached::GET_EXTENDED); var_dump($v); // Set flags on $m->setOption(Memcached::OPT_USER_FLAGS, FLAG_1); $m->set ($key, '1', 10); $m->get($key); check_flags(get_flags($m, $key), array(FLAG_1)); // Multiple flags $m->setOption(Memcached::OPT_USER_FLAGS, FLAG_1 | FLAG_2 | FLAG_4); $m->set ($key, '1', 10); $m->get($key); check_flags(get_flags($m, $key), array(FLAG_1, FLAG_2, FLAG_4)); // Even more flags $m->setOption(Memcached::OPT_USER_FLAGS, FLAG_1 | FLAG_2 | FLAG_4 | FLAG_32 | FLAG_64); $m->set ($key, '1', 10); $m->get($key); check_flags(get_flags($m, $key), array(FLAG_1, FLAG_2, FLAG_4, FLAG_32, FLAG_64)); // User flags with get multi $values = array( uniqid ('udf_test_multi_') => "first", uniqid ('udf_test_multi_') => "second", uniqid ('udf_test_multi_') => "third", ); $m->setOption(Memcached::OPT_USER_FLAGS, FLAG_2 | FLAG_4); $m->setMulti($values); $m->getMulti(array_keys($values)); $flags = $m->getMulti(array_keys($values), Memcached::GET_EXTENDED); foreach (array_keys($values) as $key) { check_flags($flags[$key]['flags'], array(FLAG_2, FLAG_4)); } // User flags with compression on $m->setOption(Memcached::OPT_USER_FLAGS, FLAG_1 | FLAG_2 | FLAG_4); $m->setOption(Memcached::OPT_COMPRESSION, true); $m->setOption(Memcached::OPT_COMPRESSION_TYPE, Memcached::COMPRESSION_FASTLZ); $m->set ($key, '1', 10); $m->get($key); check_flags(get_flags($m, $key), array(FLAG_1, FLAG_2, FLAG_4)); // Too large flags $m->setOption(Memcached::OPT_USER_FLAGS, FLAG_TOO_LARGE); echo "DONE TEST\n"; ?> --EXPECTF-- array(3) { ["value"]=> string(1) "1" ["cas"]=> int(%d) ["flags"]=> int(0) } Flags OK Flags OK Flags OK Flags OK Flags OK Flags OK Flags OK Warning: Memcached::setOption(): MEMC_OPT_USER_FLAGS must be < 65535 in %s on line %d DONE TEST
[-] no-not-found.phpt
[edit]
[-] types_json_multi.phpt
[edit]
[-] session_lazy_warning.phpt
[edit]
[-] session_badconf_prefix.phpt
[edit]
[-] types_msgpack_multi.phpt
[edit]
[-] bug_17137.phpt
[edit]
[-] check_key.phpt
[edit]
[-] cas.phpt
[edit]
[-] pr_75.phpt
[edit]
[-] localserver.phpt
[edit]
[-] getserverbykey.phpt
[edit]
[-] reset_keyprefix.phpt
[edit]
[-] construct_persistent.phpt
[edit]
[-] set_large.phpt
[edit]
[-] cachecallback.phpt
[edit]
[-] sasl_basic.phpt
[edit]
[-] session_lock.phpt
[edit]
[-] memcachedserver6.phpt
[edit]
[-] server.php
[edit]
[-] vbucket.phpt
[edit]
[-] setmulti.phpt
[edit]
[-] gh_90.phpt
[edit]
[-] types_php.phpt
[edit]
[-] 001.phpt
[edit]
[-] types_igbinary.phpt
[edit]
[-] rescode.phpt
[edit]
[-] check_if_pristine.phpt
[edit]
[-] append.phpt
[edit]
[-] types_json.phpt
[edit]
[-] session_badconf_locktime.phpt
[edit]
[-] invalid_options.phpt
[edit]
[-] session_basic.phpt
[edit]
[-] expire.phpt
[edit]
[-] testdata.res
[edit]
[-] types_msgpack.phpt
[edit]
[-] session_badconf_persistent.phpt
[edit]
[-] compression_types.phpt
[edit]
[-] server.inc
[edit]
[-] session_basic2.phpt
[edit]
[-] bug_18639.phpt
[edit]
[-] set_encoding_key2.phpt
[edit]
[-] invoke_callback_twice.phpt
[edit]
[-] incrdecr_initial.phpt
[edit]
[-] session_persistent.phpt
[edit]
[-] multi_order.phpt
[edit]
[-] get_flags.phpt
[edit]
[-] session_badconf_servers.phpt
[edit]
[-] gh_500.phpt
[edit]
[-] session_regenerate.phpt
[edit]
[-] gh_21.phpt
[edit]
[-] setoptions.phpt
[edit]
[-] keys_binary.phpt
[edit]
[-] bad_construct.phpt
[edit]
[-] check_if_persistent.phpt
[edit]
[-] getmulti.phpt
[edit]
[-] invoke_callback.phpt
[edit]
[-] getdelayed.phpt
[edit]
[-] incrdecr_invalid_key.phpt
[edit]
[-] gh_93.phpt
[edit]
[-] touch_binary.phpt
[edit]
[-] memcachedserver.phpt
[edit]
[-] deleted.phpt
[edit]
[-] callback_exception.phpt
[edit]
[-] vbucket_error_8.phpt
[edit]
[-] bad_construct_8.phpt
[edit]
[-] options.phpt
[edit]
[-] stats.phpt
[edit]
[-] gh_155.phpt
[edit]
[-] incrdecr.phpt
[edit]
[-] session_badconf_servers-php72.phpt
[edit]
[-] undefined_set.phpt
[edit]
[+]
..
[-] session_badconf_emptyprefix.phpt
[edit]
[-] gh_77.phpt
[edit]
[-] bug_16084.phpt
[edit]
[-] default_behavior.phpt
[edit]
[-] replace.phpt
[edit]
[-] user-flags.phpt
[edit]
[-] bug_16959.phpt
[edit]
[-] types_php_multi.phpt
[edit]
[-] invoke_callback_2.phpt
[edit]
[-] session_basic3.phpt
[edit]
[-] cas_multi.phpt
[edit]
[-] getserverlist.phpt
[edit]
[-] deletemultitypes.phpt
[edit]
[-] version.phpt
[edit]
[-] clone.phpt
[edit]
[-] session_lock-php71.phpt
[edit]
[-] types_igbinary_multi.phpt
[edit]
[-] incrdecr_64.phpt
[edit]
[-] deletemulti.phpt
[edit]
[-] stats_hang.phpt
[edit]
[-] vbucket_error_7.phpt
[edit]
[-] incrdecr_bykey.phpt
[edit]
[-] types.inc
[edit]
[-] prepend.phpt
[edit]
[-] flush_buffers.phpt
[edit]
[-] keys_ascii.phpt
[edit]
[-] construct.phpt
[edit]
[-] config.inc
[edit]
[-] conf_persist.phpt
[edit]
[-] skipif.inc
[edit]
[-] callback_exception_2.phpt
[edit]
[-] add.phpt
[edit]