#!/www/server/bin/php -qC 'http://localhost:8000/long_sleep', 'timeout' => 4, 'retries' => 0, 'it_error' => false]), 'it_url::get() fails after timeout seconds with no output' ); $duration = microtime(true) - $start; $res2 = ok( $duration >= 4 && $duration <= 6, '... and fails as soon as timeout is surpassed' ); sleep(1); # wait for testserver $output = server_output(); if (!$res || !$res2) diag($output); handle_server( is( it_url::get('http://localhost:8000/slow_response'), implode('', it::map('"Testserver slow output $v\n"', range(0, 5))), 'it_url::get() waits for slow response with continuous output' ) ); $start = microtime(true); $res = ok( !it_url::get(['url' => 'http://localhost:8000/slow_response', 'totaltimeout' => 5, 'retries' => 0, 'it_error' => false]), 'it_url::get() fails for response slower than totaltimeout' ); $res2 = is( intval(microtime(true) - $start), 5, '... and fails as soon as totaltimeout is surpassed' ); sleep(1); # wait for testserver $output = server_output(); if (!$res || !$res2) diag($output); $start = microtime(true); $res = ok( !it_url::get(['url' => 'http://localhost:8000/slow_response', 'maxlength' => 10, 'retries' => 0, 'it_error' => false]), 'it_url::get() fails for response larger than maxlength' ); $res2 = is( intval(microtime(true) - $start), 1, '... and fails as soon as maxlength is surpassed' ); sleep(1); # wait for testserver $output = server_output(); if (!$res || !$res2) diag($output); handle_server( ok( it_url::get(U('http://localhost:8000/repeat', ['string' => "abc", 'num' => 1024 * 1024])) == str_repeat("abc", 1024 * 1024), 'it_url::get() handles large response' ) ); $start = microtime(true); it_url::get_multi(['urls' => ['slow' => 'http://localhost:8000/long_sleep', 'fast' => ['url' => 'http://search.ch/', 'handler' => function () {return true;}]]]); ok(intval(microtime(true) - $start) < 4, 'get_multi with handler aborts after fast request'); $output = server_output();