PATH:
opt
/
alt
/
tests
/
alt-php71-pecl-http_3.3.0-1.el8
/
tests
--TEST-- client curl user handler --SKIPIF-- <?php include "skipif.inc"; skip_client_test(); ?> --FILE-- <?php echo "Test\n"; class UserHandler implements http\Client\Curl\User { private $client; private $run; private $fds = array( "R" => array(), "W" => array() ); private $R = array(); private $W = array(); private $timeout = 1000; function __construct(http\Client $client) { $this->client = $client; } function init($run) { $this->run = $run; } function timer(int $timeout_ms) { echo "T"; $this->timeout = $timeout_ms; } function socket($socket, int $action) { echo "S"; switch ($action) { case self::POLL_NONE: break; case self::POLL_REMOVE: if (false !== ($r = array_search($socket, $this->fds["R"], true))) { echo "U"; unset($this->fds["R"][$r]); } if (false !== ($w = array_search($socket, $this->fds["W"], true))) { echo "U"; unset($this->fds["W"][$w]); } break; default: if ($action & self::POLL_IN) { if (!in_array($socket, $this->fds["R"], true)) { $this->fds["R"][] = $socket; } } if ($action & self::POLL_OUT) { if (!in_array($socket, $this->fds["W"], true)) { $this->fds["W"][] = $socket; } } break; } } function once() { echo "O"; foreach ($this->W as $w) { call_user_func($this->run, $this->client, $w, self::POLL_OUT); } foreach ($this->R as $r) { call_user_func($this->run, $this->client, $r, self::POLL_IN); } return count($this->client); } function wait(int $timeout_ms = null) { echo "W"; if ($timeout_ms === null) { $timeout_ms = $this->timeout; } $ts = floor($timeout_ms / 1000); $tu = ($timeout_ms % 1000) * 1000; extract($this->fds); if (($wfds = count($R) + count($W))) { $nfds = stream_select($R, $W, $E, $ts, $tu); } else { $nfds = 0; } $this->R = (array) $R; $this->W = (array) $W; if ($nfds === false) { return false; } if (!$nfds) { if (!$wfds) { echo "S"; time_nanosleep($ts, $tu*1000); } call_user_func($this->run, $this->client); } return true; } function send() { $this->wait(); $this->once(); } } include "helper/server.inc"; server("proxy.inc", function($port) { $client = new http\Client; $client->configure(array( "use_eventloop" => new UserHandler($client) )); $client->enqueue(new http\Client\Request("GET", "http://localhost:$port/"), function($r) { var_dump($r->getResponseCode()); }); $client->send(); }); ?> ===DONE=== --EXPECTREGEX-- Test [ST][WST]*([OWSTU]*)+U+int\(200\) O*===DONE===
[+]
..
[-] message003.phpt
[edit]
[-] encstream005.phpt
[edit]
[-] client008.phpt
[edit]
[-] header009.phpt
[edit]
[-] encstream004.phpt
[edit]
[-] message011.phpt
[edit]
[-] headerparser003.phpt
[edit]
[-] client019.phpt
[edit]
[-] envresponse002.phpt
[edit]
[-] encstream006.phpt
[edit]
[-] urlparser012.phpt
[edit]
[-] client014.phpt
[edit]
[-] etag001.phpt
[edit]
[-] encstream017.phpt
[edit]
[-] urlparser011.phpt
[edit]
[-] encstream007.phpt
[edit]
[-] urlparser010.phpt
[edit]
[-] urlparser006.phpt
[edit]
[-] bug69076.phpt
[edit]
[-] client010.phpt
[edit]
[-] headerparser002.phpt
[edit]
[-] bug69000.phpt
[edit]
[-] filterchunked.phpt
[edit]
[-] messagebody008.phpt
[edit]
[-] cookie011.phpt
[edit]
[-] encstream002.phpt
[edit]
[-] client003.phpt
[edit]
[+]
data
[-] messagebody010.phpt
[edit]
[-] message009.phpt
[edit]
[-] client012.phpt
[edit]
[-] messagebody004.phpt
[edit]
[+]
helper
[-] messagebody001.phpt
[edit]
[-] message006.phpt
[edit]
[-] envreset001.phpt
[edit]
[-] encstream018.phpt
[edit]
[-] client009.phpt
[edit]
[-] envrequestbody001.phpt
[edit]
[-] header007.phpt
[edit]
[-] clientresponse003.phpt
[edit]
[-] cookie009.phpt
[edit]
[-] cookie010.phpt
[edit]
[-] info001.phpt
[edit]
[-] phpinfo.phpt
[edit]
[-] params013.phpt
[edit]
[-] envresponsebody001.phpt
[edit]
[-] propertyproxy001.phpt
[edit]
[-] messagebody009.phpt
[edit]
[-] filterzlib.phpt
[edit]
[-] bug61444.phpt
[edit]
[-] urlparser007.phpt
[edit]
[-] header004.phpt
[edit]
[-] client015.phpt
[edit]
[-] params012.phpt
[edit]
[-] message001.phpt
[edit]
[-] encstream019.phpt
[edit]
[-] querystring003.phpt
[edit]
[-] client024.phpt
[edit]
[-] params005.phpt
[edit]
[-] serialize001.phpt
[edit]
[-] cookie008.phpt
[edit]
[-] gh-issue6.phpt
[edit]
[-] clientrequest004.phpt
[edit]
[-] client032.phpt
[edit]
[-] encstream001.phpt
[edit]
[-] urlparser004.phpt
[edit]
[-] params014.phpt
[edit]
[-] cookie003.phpt
[edit]
[-] url003.phpt
[edit]
[-] cookie012.phpt
[edit]
[-] info002.phpt
[edit]
[-] cookie006.phpt
[edit]
[-] encstream008.phpt
[edit]
[-] envresponse004.phpt
[edit]
[-] envresponseheader001.phpt
[edit]
[-] envrequestfiles002.phpt
[edit]
[-] messagebody005.phpt
[edit]
[-] messagebody006.phpt
[edit]
[-] url004.phpt
[edit]
[-] client029.phpt
[edit]
[-] client026.phpt
[edit]
[-] bug71719.phpt
[edit]
[-] bug67932.phpt
[edit]
[-] header008.phpt
[edit]
[-] client031.phpt
[edit]
[-] encstream016.phpt
[edit]
[-] urlparser005.phpt
[edit]
[-] client028.phpt
[edit]
[-] params010.phpt
[edit]
[-] params002.phpt
[edit]
[-] client023.phpt
[edit]
[-] header003.phpt
[edit]
[-] encstream015.phpt
[edit]
[-] params008.phpt
[edit]
[-] clientrequest001.phpt
[edit]
[-] client005.phpt
[edit]
[-] message015.phpt
[edit]
[-] gh-issue92.phpt
[edit]
[-] urlparser001.phpt
[edit]
[-] client020.phpt
[edit]
[-] bug69357.phpt
[edit]
[-] header002.phpt
[edit]
[-] urlparser008.phpt
[edit]
[-] message007.phpt
[edit]
[-] bug69313.phpt
[edit]
[-] envrequestcookie001.phpt
[edit]
[-] cookie004.phpt
[edit]
[-] urlparser013.phpt
[edit]
[-] url001.phpt
[edit]
[-] message012.phpt
[edit]
[-] negotiate001.phpt
[edit]
[-] clientresponse002.phpt
[edit]
[-] cookie002.phpt
[edit]
[-] envresponsebody002.phpt
[edit]
[-] envresponse018.phpt
[edit]
[-] cookie005.phpt
[edit]
[-] bug66388.phpt
[edit]
[-] header006.phpt
[edit]
[-] querystring001.phpt
[edit]
[-] message005.phpt
[edit]
[-] clientrequest002.phpt
[edit]
[-] message002.phpt
[edit]
[-] client030.phpt
[edit]
[-] message013.phpt
[edit]
[-] cookie007.phpt
[edit]
[-] params011.phpt
[edit]
[-] gh-issue42.phpt
[edit]
[-] envresponsecodes.phpt
[edit]
[-] params004.phpt
[edit]
[-] envresponse017.phpt
[edit]
[-] client016.phpt
[edit]
[-] params015.phpt
[edit]
[-] client013.phpt
[edit]
[-] client001.phpt
[edit]
[-] client006.phpt
[edit]
[-] urlparser009.phpt
[edit]
[-] client004.phpt
[edit]
[-] header005.phpt
[edit]
[-] bug73055.phpt
[edit]
[-] envresponse016.phpt
[edit]
[-] params001.phpt
[edit]
[-] gh-issue50.phpt
[edit]
[-] params009.phpt
[edit]
[-] message016.phpt
[edit]
[-] cookie001.phpt
[edit]
[-] encstream009.phpt
[edit]
[-] messagebody002.phpt
[edit]
[-] envresponseranges001.phpt
[edit]
[-] params003.phpt
[edit]
[-] client011.phpt
[edit]
[-] client025.phpt
[edit]
[-] urlparser003.phpt
[edit]
[-] clientrequest003.phpt
[edit]
[-] envresponsecookie001.phpt
[edit]
[-] gh-issue63.phpt
[edit]
[-] filterbrotli.phpt
[edit]
[-] querystring001_a.phpt
[edit]
[-] envrequestquery.phpt
[edit]
[-] envrequestfiles001.phpt
[edit]
[-] message010.phpt
[edit]
[-] client007.phpt
[edit]
[-] envresponse015.phpt
[edit]
[-] messageparser002.phpt
[edit]
[-] client018.phpt
[edit]
[-] headerparser001.phpt
[edit]
[-] params007.phpt
[edit]
[-] client022.phpt
[edit]
[-] version001.phpt
[edit]
[-] messagebody003.phpt
[edit]
[-] params017.phpt
[edit]
[-] messagebody007.phpt
[edit]
[-] params016.phpt
[edit]
[-] urlparser002.phpt
[edit]
[-] params006.phpt
[edit]
[-] envresponse003.phpt
[edit]
[-] envrequestform.phpt
[edit]
[-] encstream003.phpt
[edit]
[-] message004.phpt
[edit]
[-] client017.phpt
[edit]
[-] gh-issue11.phpt
[edit]
[-] client002.phpt
[edit]
[-] url002.phpt
[edit]
[-] client027.phpt
[edit]
[-] client021.phpt
[edit]
[-] header001.phpt
[edit]
[-] querystring002.phpt
[edit]
[-] skipif.inc
[edit]
[-] message008.phpt
[edit]
[-] clientresponse001.phpt
[edit]
[-] messageparser001.phpt
[edit]
[-] bug66891.phpt
[edit]
[-] envrequestheader001.phpt
[edit]
[-] url005.phpt
[edit]
[-] message014.phpt
[edit]