X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Fhelper%2Fpipeline.inc;h=a6b16999c373b3835396edd44f17e5e4428e554f;hb=f6a612bfd0eb7ff179c013f3226b6a7790bb4d82;hp=815b46339b672574284138ec976cf8da0b472827;hpb=95c6c900d04096d332c422e3f597186b7184c5ab;p=m6w6%2Fext-http diff --git a/tests/helper/pipeline.inc b/tests/helper/pipeline.inc index 815b463..a6b1699 100644 --- a/tests/helper/pipeline.inc +++ b/tests/helper/pipeline.inc @@ -3,23 +3,31 @@ include "server.inc"; function respond($client, $msg) { - (new http\Env\Response)->setEnvRequest($msg) + $r = new http\Env\Response; + $r->setEnvRequest($msg) ->setHeader("X-Req", $msg->getRequestUrl()) ->send($client); } serve(function($client) { + $R = array(STDIN); $W = $E = array(); + if (!stream_select($R, $W, $E, 10, 0)) { + logger("Client %d timed out", (int) $client); + return; + } $count = trim(fgets(STDIN)); - + logger("Expecting %d messages from client %d", $count, (int) $client); /* the peek message */ respond($client, new http\Message($client, false)); - + logger("Handled the peek request of client %d", (int) $client); /* pipelined messages */ $req = array(); for ($i=0; $i < $count; ++ $i) { $req[] = new http\Message($client, false); + logger("Read request no. %d from client %d", $i+1, (int) $client); } - foreach ($req as $msg) { + foreach ($req as $i => $msg) { respond($client, $msg); + logger("Sent response no. %d to client %d", $i+1, (int) $client); } });