1--TEST-- 2Check stats does not hang on non-blocking binary protocol 3--SKIPIF-- 4<?php include "skipif.inc";?> 5--FILE-- 6<?php 7include dirname (__FILE__) . '/config.inc'; 8$m = memc_get_instance (); 9 10$key = MEMC_SERVER_HOST . ':' . MEMC_SERVER_PORT; 11 12// Both options set means we have to reconnect to get stats 13$m->setOption(Memcached::OPT_NO_BLOCK, true); 14$m->setOption(Memcached::OPT_BINARY_PROTOCOL, true); 15 16$stats = $m->getStats(); 17$conns1 = $stats[$key]['total_connections']; 18 19$stats = $m->getStats(); 20$conns2 = $stats[$key]['total_connections']; 21 22var_dump($conns1 == $conns2); 23var_dump($m->getOption(Memcached::OPT_NO_BLOCK)); 24var_dump($m->getOption(Memcached::OPT_BINARY_PROTOCOL)); 25echo "OK" . PHP_EOL; 26 27// If either or both options are false no need to reconnect 28$m->setOption(Memcached::OPT_NO_BLOCK, false); 29$m->setOption(Memcached::OPT_BINARY_PROTOCOL, true); 30 31$stats = $m->getStats(); 32$conns1 = $stats[$key]['total_connections']; 33 34$stats = $m->getStats(); 35$conns2 = $stats[$key]['total_connections']; 36 37var_dump($conns1 == $conns2); 38var_dump($m->getOption(Memcached::OPT_NO_BLOCK)); 39var_dump($m->getOption(Memcached::OPT_BINARY_PROTOCOL)); 40echo "OK" . PHP_EOL; 41 42// If either or both options are false no need to reconnect 43$m->setOption(Memcached::OPT_NO_BLOCK, true); 44$m->setOption(Memcached::OPT_BINARY_PROTOCOL, false); 45 46$stats = $m->getStats(); 47$conns1 = $stats[$key]['total_connections']; 48 49$stats = $m->getStats(); 50$conns2 = $stats[$key]['total_connections']; 51 52var_dump($conns1 == $conns2); 53var_dump($m->getOption(Memcached::OPT_NO_BLOCK)); 54var_dump($m->getOption(Memcached::OPT_BINARY_PROTOCOL)); 55echo "OK" . PHP_EOL; 56 57// If either or both options are false no need to reconnect 58$m->setOption(Memcached::OPT_NO_BLOCK, false); 59$m->setOption(Memcached::OPT_BINARY_PROTOCOL, false); 60 61$stats = $m->getStats(); 62$conns1 = $stats[$key]['total_connections']; 63 64$stats = $m->getStats(); 65$conns2 = $stats[$key]['total_connections']; 66 67var_dump($conns1 == $conns2); 68var_dump($m->getOption(Memcached::OPT_NO_BLOCK)); 69var_dump($m->getOption(Memcached::OPT_BINARY_PROTOCOL)); 70echo "OK" . PHP_EOL; 71 72?> 73--EXPECT-- 74bool(false) 75int(1) 76int(1) 77OK 78bool(true) 79int(0) 80int(1) 81OK 82bool(true) 83int(1) 84int(0) 85OK 86bool(true) 87int(0) 88int(0) 89OK 90