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