1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
Description: fix some tests in kfreebsd.
Author: Adam Majer <adamm@zombino.com>
Bug-Qt: https://bugreports.qt-project.org/browse/QTBUG-41448
---
tests/auto/qwebsocket/tst_qwebsocket.cpp | 31 ++++++++++++++++++++++++++++---
1 file changed, 28 insertions(+), 3 deletions(-)
--- a/tests/auto/qwebsocket/tst_qwebsocket.cpp
+++ b/tests/auto/qwebsocket/tst_qwebsocket.cpp
@@ -246,6 +246,7 @@ void tst_QWebSocket::tst_invalidOpen_dat
QTest::addColumn<QString>("expectedUrl");
QTest::addColumn<QString>("expectedPeerName");
QTest::addColumn<QString>("expectedResourceName");
+ QTest::addColumn<QAbstractSocket::SocketError>("socketErrorAfterConnect");
QTest::addColumn<QAbstractSocket::SocketState>("stateAfterOpenCall");
QTest::addColumn<int>("disconnectedCount");
QTest::addColumn<int>("stateChangedCount");
@@ -253,18 +254,28 @@ void tst_QWebSocket::tst_invalidOpen_dat
QTest::newRow("Illegal local address")
<< QStringLiteral("ws://127.0.0.1:1/") << QStringLiteral("ws://127.0.0.1:1/")
<< QStringLiteral("127.0.0.1")
- << QStringLiteral("/") << QAbstractSocket::ConnectingState
+ << QStringLiteral("/")
+#ifdef Q_OS_FREEBSD_KERNEL
+ << QAbstractSocket::ConnectionRefusedError
+ << QAbstractSocket::UnconnectedState
+#else
+ << QAbstractSocket::UnknownSocketError
+ << QAbstractSocket::ConnectingState
+#endif
<< 1
<< 2; //going from connecting to disconnected
QTest::newRow("URL containing new line in the hostname")
<< QStringLiteral("ws://myhacky\r\nserver/") << QString()
<< QString()
- << QString() << QAbstractSocket::UnconnectedState
+ << QString()
+ << QAbstractSocket::UnknownSocketError
+ << QAbstractSocket::UnconnectedState
<< 0 << 0;
QTest::newRow("URL containing new line in the resource name")
<< QStringLiteral("ws://127.0.0.1:1/tricky\r\npath") << QString()
<< QString()
<< QString()
+ << QAbstractSocket::UnknownSocketError
<< QAbstractSocket::UnconnectedState
<< 0 << 0;
}
@@ -275,6 +286,7 @@ void tst_QWebSocket::tst_invalidOpen()
QFETCH(QString, expectedUrl);
QFETCH(QString, expectedPeerName);
QFETCH(QString, expectedResourceName);
+ QFETCH(QAbstractSocket::SocketError, socketErrorAfterConnect);
QFETCH(QAbstractSocket::SocketState, stateAfterOpenCall);
QFETCH(int, disconnectedCount);
QFETCH(int, stateChangedCount);
@@ -298,7 +310,8 @@ void tst_QWebSocket::tst_invalidOpen()
QCOMPARE(socket.version(), QWebSocketProtocol::VersionLatest);
//at this point the socket is in a connecting state
//so, there should no error at this point
- QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError);
+ // but it depends on the platform
+ QCOMPARE(socket.error(), socketErrorAfterConnect);
QVERIFY(!socket.errorString().isEmpty());
QVERIFY(!socket.isValid());
QVERIFY(socket.localAddress().isNull());
@@ -365,7 +378,13 @@ void tst_QWebSocket::tst_invalidOrigin()
//at this point the socket is in a connecting state
//so, there should no error at this point
+#ifdef Q_OS_FREEBSD_KERNEL
+ // except with FreeBSD, which seems too fast for tests
+ QCOMPARE(socket.error(), QAbstractSocket::ConnectionRefusedError);
+#else
QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError);
+#endif
+
QVERIFY(!socket.errorString().isEmpty());
QVERIFY(!socket.isValid());
QVERIFY(socket.localAddress().isNull());
@@ -374,13 +393,19 @@ void tst_QWebSocket::tst_invalidOrigin()
QVERIFY(socket.peerAddress().isNull());
QCOMPARE(socket.peerPort(), quint16(0));
QCOMPARE(socket.peerName(), QStringLiteral("127.0.0.1"));
+#ifdef Q_OS_FREEBSD_KERNEL
+ QCOMPARE(socket.state(), QAbstractSocket::UnconnectedState);
+#else
QCOMPARE(socket.state(), QAbstractSocket::ConnectingState);
+#endif
QCOMPARE(socket.readBufferSize(), 0);
QCOMPARE(socket.resourceName(), QStringLiteral("/"));
QCOMPARE(socket.requestUrl(), QUrl(QStringLiteral("ws://127.0.0.1:1/")));
QCOMPARE(socket.closeCode(), QWebSocketProtocol::CloseCodeNormal);
+#ifndef Q_OS_FREEBSD_KERNEL
QVERIFY(errorSpy.wait());
+#endif
QCOMPARE(errorSpy.count(), 1);
QList<QVariant> arguments = errorSpy.takeFirst();
|