forked from qt-creator/qt-creator
QmlProfiler: Unify local and tcp connection mechanism
Use the URL scheme to distinguish between them, check that in QmlProfilerClientManager and test all possible combinations of URL parts. Change-Id: I6583e5bf18eda0344a299a279c12578c4ebc7ffe Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -73,38 +73,32 @@ void QmlProfilerClientManagerTest::testConnectionFailure_data()
|
||||
QUrl localUrl = urlFromLocalHostAndFreePort();
|
||||
|
||||
QTest::addColumn<QUrl>("serverUrl");
|
||||
QVarLengthArray<QString> hosts({"", "/-/|\\-\\|/-", localUrl.host()});
|
||||
QVarLengthArray<int> ports({-1, 5, localUrl.port()});
|
||||
QVarLengthArray<QString> sockets({"", "/-/|\\-\\|/-", urlFromLocalSocket().path()});
|
||||
const QVarLengthArray<QString> hosts({"", "/-/|\\-\\|/-", localUrl.host()});
|
||||
const QVarLengthArray<int> ports({-1, 5, localUrl.port()});
|
||||
const QVarLengthArray<QString> sockets({"", "/-/|\\-\\|/-", urlFromLocalSocket().path()});
|
||||
const QVarLengthArray<QString> schemes({"", urlSocketScheme(), urlTcpScheme()});
|
||||
|
||||
foreach (QmlProfilerModelManager *modelManager, modelManagers) {
|
||||
foreach (QmlProfilerStateManager *stateManager, stateManagers) {
|
||||
foreach (QString host, hosts) {
|
||||
foreach (int port, ports) {
|
||||
QString tag = QString::fromLatin1("%1, %2, %3, %4, %5")
|
||||
.arg(QLatin1String(modelManager ? "modelManager" : "<null>"))
|
||||
.arg(QLatin1String(stateManager ? "stateManager" : "<null>"))
|
||||
.arg(host.isEmpty() ? "<empty>" : host)
|
||||
.arg(Utils::Port(port).isValid() ? port : 0)
|
||||
.arg("<empty>");
|
||||
QUrl url;
|
||||
url.setHost(host);
|
||||
url.setPort(port);
|
||||
QTest::newRow(tag.toLatin1().constData()) << modelManager << stateManager << url;
|
||||
for (QmlProfilerModelManager *modelManager : modelManagers) {
|
||||
for (QmlProfilerStateManager *stateManager : stateManagers) {
|
||||
for (const QString &host : hosts) {
|
||||
for (int port : ports) {
|
||||
for (const QString &socket : sockets) {
|
||||
for (const QString &scheme : schemes ) {
|
||||
QUrl url;
|
||||
url.setScheme(scheme);
|
||||
url.setHost(host);
|
||||
url.setPort(port);
|
||||
url.setPath(socket);
|
||||
QString tag = QString::fromLatin1("%1, %2, %3")
|
||||
.arg(QLatin1String(modelManager ? "modelManager" : "<null>"))
|
||||
.arg(QLatin1String(stateManager ? "stateManager" : "<null>"))
|
||||
.arg(url.toString());
|
||||
QTest::newRow(tag.toLatin1().constData()) << modelManager
|
||||
<< stateManager << url;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
foreach (QString socket, sockets) {
|
||||
QString tag = QString::fromLatin1("%1, %2, %3, %4, %5")
|
||||
.arg(QLatin1String(modelManager ? "modelManager" : "<null>"))
|
||||
.arg(QLatin1String(stateManager ? "stateManager" : "<null>"))
|
||||
.arg("<empty>")
|
||||
.arg(0)
|
||||
.arg(socket);
|
||||
QUrl url;
|
||||
url.setScheme(urlSocketScheme());
|
||||
url.setPath(socket);
|
||||
QTest::newRow(tag.toLatin1().constData()) << modelManager << stateManager << url;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,24 +131,17 @@ void QmlProfilerClientManagerTest::testConnectionFailure()
|
||||
|
||||
clientManager.setModelManager(modelManager);
|
||||
clientManager.setProfilerStateManager(stateManager);
|
||||
clientManager.setServerUrl(serverUrl);
|
||||
|
||||
QVERIFY(!clientManager.isConnected());
|
||||
|
||||
clientManager.connectToTcpServer();
|
||||
clientManager.connectToServer(serverUrl);
|
||||
QTRY_COMPARE(failedSpy.count(), 1);
|
||||
QCOMPARE(closedSpy.count(), 0);
|
||||
QCOMPARE(openedSpy.count(), 0);
|
||||
QVERIFY(!clientManager.isConnected());
|
||||
|
||||
clientManager.startLocalServer();
|
||||
QTRY_COMPARE(failedSpy.count(), 2);
|
||||
QCOMPARE(closedSpy.count(), 0);
|
||||
QCOMPARE(openedSpy.count(), 0);
|
||||
QVERIFY(!clientManager.isConnected());
|
||||
|
||||
clientManager.retryConnect();
|
||||
QTRY_COMPARE(failedSpy.count(), 3);
|
||||
QTRY_COMPARE(failedSpy.count(), 2);
|
||||
QCOMPARE(closedSpy.count(), 0);
|
||||
QCOMPARE(openedSpy.count(), 0);
|
||||
QVERIFY(!clientManager.isConnected());
|
||||
@@ -181,8 +168,7 @@ void QmlProfilerClientManagerTest::testUnresponsiveTcp()
|
||||
server.listen(QHostAddress(serverUrl.host()), serverUrl.port());
|
||||
QSignalSpy connectionSpy(&server, SIGNAL(newConnection()));
|
||||
|
||||
clientManager.setServerUrl(serverUrl);
|
||||
clientManager.connectToTcpServer();
|
||||
clientManager.connectToServer(serverUrl);
|
||||
|
||||
QTRY_VERIFY(connectionSpy.count() > 0);
|
||||
QTRY_COMPARE(failedSpy.count(), 1);
|
||||
@@ -208,8 +194,7 @@ void QmlProfilerClientManagerTest::testUnresponsiveLocal()
|
||||
QLocalSocket socket;
|
||||
QSignalSpy connectionSpy(&socket, SIGNAL(connected()));
|
||||
|
||||
clientManager.setServerUrl(socketUrl);
|
||||
clientManager.startLocalServer();
|
||||
clientManager.connectToServer(socketUrl);
|
||||
|
||||
socket.connectToServer(socketUrl.path());
|
||||
QTRY_COMPARE(connectionSpy.count(), 1);
|
||||
@@ -280,8 +265,7 @@ void QmlProfilerClientManagerTest::testResponsiveTcp()
|
||||
connect(&clientManager, &QmlProfilerClientManager::connectionFailed,
|
||||
&clientManager, &QmlProfilerClientManager::retryConnect);
|
||||
|
||||
clientManager.setServerUrl(serverUrl);
|
||||
clientManager.connectToTcpServer();
|
||||
clientManager.connectToServer(serverUrl);
|
||||
|
||||
QTRY_COMPARE(openedSpy.count(), 1);
|
||||
QCOMPARE(closedSpy.count(), 0);
|
||||
@@ -329,8 +313,7 @@ void QmlProfilerClientManagerTest::testResponsiveLocal()
|
||||
connect(&clientManager, &QmlProfilerClientManager::connectionFailed,
|
||||
&clientManager, &QmlProfilerClientManager::retryConnect);
|
||||
|
||||
clientManager.setServerUrl(socketUrl);
|
||||
clientManager.startLocalServer();
|
||||
clientManager.connectToServer(socketUrl);
|
||||
|
||||
{
|
||||
QScopedPointer<QLocalSocket> socket(new QLocalSocket(this));
|
||||
@@ -397,8 +380,7 @@ void QmlProfilerClientManagerTest::testInvalidData()
|
||||
|
||||
server.listen(QHostAddress(serverUrl.host()), serverUrl.port());
|
||||
|
||||
clientManager.setServerUrl(serverUrl);
|
||||
clientManager.connectToTcpServer();
|
||||
clientManager.connectToServer(serverUrl);
|
||||
|
||||
QTRY_VERIFY(dataSent);
|
||||
QTRY_COMPARE(failedSpy.count(), 1);
|
||||
@@ -427,8 +409,7 @@ void QmlProfilerClientManagerTest::testStopRecording()
|
||||
connect(&clientManager, &QmlProfilerClientManager::connectionFailed,
|
||||
&clientManager, &QmlProfilerClientManager::retryConnect);
|
||||
|
||||
clientManager.setServerUrl(socketUrl);
|
||||
clientManager.startLocalServer();
|
||||
clientManager.connectToServer(socketUrl);
|
||||
|
||||
QScopedPointer<QLocalSocket> socket(new QLocalSocket(this));
|
||||
socket->connectToServer(socketUrl.path());
|
||||
|
||||
Reference in New Issue
Block a user