Annotation of embedaddon/php/ext/mysql/tests/bug55473.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #5547 (mysql_pconnect leaks file descriptors on reconnect)
3: --SKIPIF--
4: <?php
5: require_once('skipif.inc');
6: require_once('skipifconnectfailure.inc');
7: if (defined('PHP_WINDOWS_VERSION_MAJOR')) {
8: die("skip Test doesn't work on Windows");
9: }
10:
11: if (!($output = @exec("lsof -np " . getmypid())))
12: die("skip Test can't find command line tool lsof");
13: ?>
14: --INI--
15: mysql.max_persistent=30
16: mysql.allow_persistent=1
17: --FILE--
18: <?php
19: include "connect.inc";
20:
21: $tmp = NULL;
22: $link = NULL;
23:
24: if ($socket)
25: $host = sprintf("%s:%s", $host, $socket);
26: else if ($port)
27: $host = sprintf("%s:%s", $host, $port);
28:
29: function connect($host, $user, $passwd) {
30: $conn = mysql_pconnect($host, $user, $passwd);
31:
32: if (!$conn)
33: die(sprintf("[001] %s\n", mysql_error()));
34:
35: if (!mysql_query("set wait_timeout=1", $conn))
36: printf("[002] [%d] %s\n", mysql_errno($conn), mysql_error($conn));
37:
38: return $conn;
39: }
40:
41: $conn = connect($host, $user, $passwd);
42: $opened_files = -1;
43:
44: for ($i = 0; $i < 4; $i++) {
45: /* wait while mysql closes connection */
46: sleep(3);
47:
48: if (!mysql_ping($conn)) {
49: printf("[003] reconnect %d\n", $i);
50: $conn = connect($host, $user, $passwd);
51: }
52:
53: $r = mysql_query('select 1', $conn);
54: if (!$r)
55: printf("[004] [%d] %s\n", mysql_errno($conn), mysql_error($conn));
56:
57:
58: if ($opened_files == -1) {
59: $opened_files = trim(exec("lsof -np " . getmypid() . " | wc -l"));
60: printf("[005] Setting openened files...\n");
61: } else if (($tmp = trim(exec("lsof -np " . getmypid() . " | wc -l"))) != $opened_files) {
62: printf("[006] [%d] different number of opened_files : expected %d, got %d", $i, $opened_files, $tmp);
63: } else {
64: printf("[007] Opened files as expected\n");
65: }
66: }
67:
68: print "done!";
69: ?>
70: --EXPECTF--
71: [003] reconnect 0
72: [005] Setting openened files...
73: [003] reconnect 1
74: [007] Opened files as expected
75: [003] reconnect 2
76: [007] Opened files as expected
77: [003] reconnect 3
78: [007] Opened files as expected
79: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>