Annotation of embedaddon/php/ext/standard/tests/http/bug60570.phpt, revision 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>