| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- //
- // Created by robin on 1/30/18.
- //
-
-
- #include <gtest/gtest.h>
- #include <QtCore/QCoreApplication>
- #include <QtCore/QTimer>
-
- #include "dns-server/QDnsUdpServer.h"
-
- #include "serverTests.h"
-
- struct DnsUdpServerTestParams
- {
- QList<const char*> hexData;
- };
-
- class DnsUdpServerTest : public ::testing::TestWithParam<DnsUdpServerTestParams>
- {
- };
-
- TEST_P(DnsUdpServerTest, simple)
- {
- auto params = GetParam();
- QCoreApplication app(m_argc, m_argv);
-
- QTimer timer;
- QObject::connect(&timer, &QTimer::timeout, qApp, &QCoreApplication::quit);
- timer.start(1000);
-
- QDns::Server::QDnsUdpServer server;
- ASSERT_TRUE(server.start(QHostAddress("127.0.0.1"), 5053));
- QList<QDns::Base::QDnsPacket> packets;
- QObject::connect(&server, &QDns::Server::QDnsServer::onRequest, [&packets](QDns::Server::QDnsServer::OnRequestParams params)
- {
- packets.append(params.packet);
- });
- QList<QDns::Base::QDnsPacket> expectedPackets;
- QUdpSocket socket;
- socket.connectToHost(QHostAddress("127.0.0.1"), 5053);
- for (auto hexData : params.hexData)
- {
- auto data = QByteArray::fromHex(hexData);
- socket.write(data.constData(), data.length());
- QDns::Base::QDnsPacket packet(data);
- if (packet.isValid())
- {
- expectedPackets.append(packet);
- }
- }
-
- ASSERT_EQ(app.exec(), 0);
- ASSERT_EQ(packets.size(), expectedPackets.size());
- }
-
- INSTANTIATE_TEST_CASE_P(DnsUdpServerTestInst,
- DnsUdpServerTest,
- ::testing::Values(
- DnsUdpServerTestParams
- {
- QList<const char*>()
- << "e1bc010000010000000000000266720000010001"
- << "00"
- << "e1bc010000010000000000000266720000010001"
- }
- ));
|