public function testParsingFrame() { // one FCGI_BEGIN request with two empty FCGI_PARAMS request $dataStream = hex2bin('0101000100080000000101000000000001040001000000000104000100000000'); $bufferSize = strlen($dataStream); $this->assertEquals(32, $bufferSize); // consume FCGI_BEGIN request $record = FrameParser::parseFrame($dataStream); $this->assertInstanceOf(BeginRequest::class, $record); $recordSize = strlen($record); $this->assertEquals(16, $recordSize); $this->assertEquals($bufferSize - $recordSize, strlen($dataStream)); // consume first FCGI_PARAMS request $record = FrameParser::parseFrame($dataStream); $this->assertInstanceOf(Params::class, $record); // consume second FCGI_PARAMS request $record = FrameParser::parseFrame($dataStream); $this->assertInstanceOf(Params::class, $record); $this->assertEquals(0, strlen($dataStream)); }