diff options
Diffstat (limited to 'tests/auto/integration/qmediaplayerbackend/server.h')
-rw-r--r-- | tests/auto/integration/qmediaplayerbackend/server.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/auto/integration/qmediaplayerbackend/server.h b/tests/auto/integration/qmediaplayerbackend/server.h new file mode 100644 index 000000000..a6fde1a7a --- /dev/null +++ b/tests/auto/integration/qmediaplayerbackend/server.h @@ -0,0 +1,48 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef SERVER_H +#define SERVER_H + +#include <private/qglobal_p.h> + +#ifdef QT_FEATURE_network + +#include <qstring.h> +#include <qtcpserver.h> +#include <qtest.h> +#include <qurl.h> + +QT_USE_NAMESPACE + +class UnResponsiveRtspServer : public QObject +{ + Q_OBJECT +public: + UnResponsiveRtspServer() : m_server{ new QTcpServer{ this } } + { + connect(m_server, &QTcpServer::newConnection, this, [&] { m_connected = true; }); + } + + bool listen() { return m_server->listen(QHostAddress::LocalHost); } + + bool waitForConnection() + { + return QTest::qWaitFor([this] { return m_connected; }); + } + + QUrl address() const + { + return QUrl{ QString{ "rtsp://%1:%2" } + .arg(m_server->serverAddress().toString()) + .arg(m_server->serverPort()) }; + } + +private: + QTcpServer *m_server; + bool m_connected = false; +}; + +#endif // QT_FEATURE_network + +#endif // SERVER_H |