Return to bug60570.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / http |
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: