1 #include "testengine.hpp" 3 #include "testengine_p.h" 10 TestEngine::TestEngine(
Application *app,
const QVariantMap &opts)
15 int TestEngine::workerId()
const 20 TestEngine::TestResponse TestEngine::createRequest(
const QByteArray &method,
30 bodyDevice =
new SequentialBuffer(body);
35 if (bodyDevice->
size()) {
39 TestEngineConnection req;
44 req.protocol =
"HTTP/1.1"_ba;
46 req.serverAddress =
"127.0.0.1"_ba;
48 req.remotePort = 3000;
50 req.headers = headersCL;
51 req.startOfRequest = std::chrono::steady_clock::now();
52 req.body = bodyDevice;
54 Q_EMIT processRequestAsync(&req);
57 req.m_eventLoop.exec();
60 ret.body = req.m_responseData;
61 ret.statusCode = req.m_statusCode;
62 ret.headers = req.m_headers;
67 TestEngine::TestResponse TestEngine::createRequest(
const QByteArray &method,
73 return createRequest(method, path.
toLatin1(), query, headers, body);
76 bool TestEngine::init()
78 return initApplication() && postForkApplication();
81 SequentialBuffer::SequentialBuffer(
QByteArray *buffer)
86 bool SequentialBuffer::isSequential()
const 91 qint64 SequentialBuffer::bytesAvailable()
const 96 qint64 SequentialBuffer::readData(
char *data, qint64 maxlen)
99 memcpy(data, mid.
data(), mid.
size());
105 qint64 SequentialBuffer::writeData(
const char *data, qint64 len)
112 qint64 TestEngineConnection::doWrite(
const char *data, qint64 len)
114 m_responseData.append(data, len);
118 bool TestEngineConnection::writeHeaders(quint16 status,
const Headers &headers)
120 m_statusCode = status;
126 void TestEngineConnection::processingFinished()
131 #include "moc_testengine.cpp"
bool isEmpty() const const
virtual bool open(QIODeviceBase::OpenMode mode)
virtual qint64 size() const const
The Cutelyst namespace holds all public Cutelyst API.
QByteArray mid(qsizetype pos, qsizetype len) const const
virtual qint64 bytesAvailable() const const
QByteArray toLatin1() const const
The Cutelyst application.
qsizetype size() const const
QByteArray & remove(qsizetype pos, qsizetype len)