Annotation of embedaddon/php/ext/standard/tests/http/bug60570.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #60570 (Stream context leaks when http request fails)
3: --SKIPIF--
4: <?php require 'server.inc'; http_server_skipif('tcp://127.0.0.1:12342'); ?>
5: --INI--
6: allow_url_fopen=1
7: allow_url_include=1
8: --FILE--
9: <?php
10: require 'server.inc';
11:
12: function do_test() {
13:
14: $responses = array(
15: "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n",
16: "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n",
17: "data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n"
18: );
19:
20: $pid = http_server("tcp://127.0.0.1:12342", $responses, $output);
21:
22: $a = $b = null;
23:
24: $i = 3;
25: while ($i--) {
26: $context = stream_context_create(array('http'=>array('timeout'=>1)));
27: file_get_contents('http://127.0.0.1:12342/', 0, $context);
28: unset($context);
29:
30: $b = $a;
31: $a = memory_get_usage();
32: }
33:
34: http_server_kill($pid);
35:
36: echo "leak? penultimate iteration: $b, last one: $a\n";
37: var_dump($a == $b);
38: }
39:
40: do_test();
41:
42: --EXPECTF--
43: Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
44: in %s on line %d
45:
46: Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
47: in %s on line %d
48:
49: Warning: file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
50: in %s on line %d
51: leak? penultimate iteration: %d, last one: %d
52: bool(true)
53:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>