1--TEST--
2Test libmemcached encryption
3--SKIPIF--
4<?php
5include dirname (__FILE__) . '/config.inc';
6if (!extension_loaded("memcached")) die ("skip");
7if (!Memcached::HAVE_ENCODING) die ("skip no set_encoding_key support enabled");
8if (Memcached::LIBMEMCACHED_VERSION_HEX >= 0x01000018) die ("skip test for libmemcached lower than 1.0.18");
9?>
10--FILE--
11<?php
12include dirname (__FILE__) . '/config.inc';
13$m = memc_get_instance ();
14$key = uniqid ('encoding_test_');
15
16var_dump ($m->setEncodingKey("Hello"));
17var_dump ($m->set ($key, 'set using encoding'));
18var_dump ($m->get ($key));
19
20echo "OK" . PHP_EOL;
21
22# libmemcached < 1.0.18 goes into a bad state when the encoding key is changed,
23# so php-memcached warns and returns false when trying to change the key.
24var_dump ($m->setEncodingKey("World"));
25
26echo "OK" . PHP_EOL;
27
28?>
29--EXPECTF--
30bool(true)
31bool(true)
32string(18) "set using encoding"
33OK
34
35Warning: Memcached::setEncodingKey(): libmemcached versions less than 1.0.18 cannot change encoding key in %s on line %d
36bool(false)
37OK
38