--TEST--
Bug #60570 (Stream context leaks when http request fails)
--SKIPIF--
<?php require 'server.inc'http_server_skipif('tcp://127.0.0.1:12342'); ?>
--INI--
allow_url_fopen=1
allow_url_include=1
--FILE--
<?php
require 'server.inc';

function 
do_test() {

    
$responses = array(
        
"data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n",
        
"data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n",
        
"data://text/plain,HTTP/1.0 404 Not Found\r\n\r\n"
    
);

    
$pid http_server("tcp://127.0.0.1:12342"$responses$output);

    
$a $b null;

    
$i 3;
    while (
$i--) {
        
$context stream_context_create(array('http'=>array('timeout'=>1)));
        
file_get_contents('http://127.0.0.1:12342/'0$context);
        unset(
$context);
        
        
$b $a;
        
$a memory_get_usage();
    }

    
http_server_kill($pid);

    echo 
"leak? penultimate iteration: $b, last one: $a\n";
    
var_dump($a == $b);
}

do_test();

--
EXPECTF--
Warningfile_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
 
in %s on line %d

Warning
file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
 
in %s on line %d

Warning
file_get_contents(http://127.0.0.1:12342/): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found
 
in %s on line %d
leak
penultimate iteration: %dlast one: %d
bool
(true)