summaryrefslogtreecommitdiffstats
path: root/tests/auto/network
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network')
-rw-r--r--tests/auto/network/CMakeLists.txt21
-rw-r--r--tests/auto/network/access/CMakeLists.txt22
-rw-r--r--tests/auto/network/access/access.pro7
-rw-r--r--tests/auto/network/access/hpack/CMakeLists.txt17
-rw-r--r--tests/auto/network/access/hsts/CMakeLists.txt17
-rw-r--r--tests/auto/network/access/http2/CMakeLists.txt20
-rw-r--r--tests/auto/network/access/http2/tst_http2.cpp7
-rw-r--r--tests/auto/network/access/qabstractnetworkcache/CMakeLists.txt22
-rw-r--r--tests/auto/network/access/qftp/CMakeLists.txt25
-rw-r--r--tests/auto/network/access/qftp/qftp.pro2
-rw-r--r--tests/auto/network/access/qhttpnetworkconnection/CMakeLists.txt21
-rw-r--r--tests/auto/network/access/qhttpnetworkreply/CMakeLists.txt20
-rw-r--r--tests/auto/network/access/qnetworkaccessmanager/CMakeLists.txt12
-rw-r--r--tests/auto/network/access/qnetworkcachemetadata/CMakeLists.txt12
-rw-r--r--tests/auto/network/access/qnetworkcookie/CMakeLists.txt12
-rw-r--r--tests/auto/network/access/qnetworkcookiejar/CMakeLists.txt18
-rw-r--r--tests/auto/network/access/qnetworkdiskcache/CMakeLists.txt12
-rw-r--r--tests/auto/network/access/qnetworkreply/BLACKLIST2
-rw-r--r--tests/auto/network/access/qnetworkreply/CMakeLists.txt7
-rw-r--r--tests/auto/network/access/qnetworkreply/echo/.prev_CMakeLists.txt10
-rw-r--r--tests/auto/network/access/qnetworkreply/echo/CMakeLists.txt11
-rw-r--r--tests/auto/network/access/qnetworkreply/test/CMakeLists.txt60
-rw-r--r--tests/auto/network/access/qnetworkreply/test/test.pro2
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp55
-rw-r--r--tests/auto/network/access/qnetworkrequest/CMakeLists.txt12
-rw-r--r--tests/auto/network/access/spdy/BLACKLIST7
-rw-r--r--tests/auto/network/access/spdy/spdy.pro7
-rw-r--r--tests/auto/network/access/spdy/tst_spdy.cpp694
-rw-r--r--tests/auto/network/bearer/CMakeLists.txt6
-rw-r--r--tests/auto/network/bearer/qnetworkconfiguration/CMakeLists.txt13
-rw-r--r--tests/auto/network/bearer/qnetworkconfigurationmanager/CMakeLists.txt13
-rw-r--r--tests/auto/network/bearer/qnetworkconfigurationmanagerqappless/CMakeLists.txt13
-rw-r--r--tests/auto/network/bearer/qnetworksession/CMakeLists.txt7
-rw-r--r--tests/auto/network/bearer/qnetworksession/lackey/CMakeLists.txt13
-rw-r--r--tests/auto/network/bearer/qnetworksession/test/.prev_CMakeLists.txt29
-rw-r--r--tests/auto/network/bearer/qnetworksession/test/CMakeLists.txt30
-rw-r--r--tests/auto/network/kernel/CMakeLists.txt19
-rw-r--r--tests/auto/network/kernel/qauthenticator/CMakeLists.txt21
-rw-r--r--tests/auto/network/kernel/qdnslookup/CMakeLists.txt12
-rw-r--r--tests/auto/network/kernel/qdnslookup_appless/CMakeLists.txt12
-rw-r--r--tests/auto/network/kernel/qhostaddress/CMakeLists.txt20
-rw-r--r--tests/auto/network/kernel/qhostinfo/CMakeLists.txt31
-rw-r--r--tests/auto/network/kernel/qnetworkaddressentry/CMakeLists.txt12
-rw-r--r--tests/auto/network/kernel/qnetworkdatagram/CMakeLists.txt12
-rw-r--r--tests/auto/network/kernel/qnetworkinterface/CMakeLists.txt15
-rw-r--r--tests/auto/network/kernel/qnetworkproxy/CMakeLists.txt12
-rw-r--r--tests/auto/network/kernel/qnetworkproxyfactory/CMakeLists.txt12
-rw-r--r--tests/auto/network/socket/CMakeLists.txt20
-rw-r--r--tests/auto/network/socket/platformsocketengine/CMakeLists.txt38
-rw-r--r--tests/auto/network/socket/platformsocketengine/platformsocketengine.pri2
-rw-r--r--tests/auto/network/socket/qabstractsocket/CMakeLists.txt12
-rw-r--r--tests/auto/network/socket/qhttpsocketengine/CMakeLists.txt41
-rw-r--r--tests/auto/network/socket/qlocalsocket/CMakeLists.txt4
-rw-r--r--tests/auto/network/socket/qlocalsocket/socketprocess/CMakeLists.txt14
-rw-r--r--tests/auto/network/socket/qlocalsocket/test/CMakeLists.txt28
-rw-r--r--tests/auto/network/socket/qsctpsocket/CMakeLists.txt12
-rw-r--r--tests/auto/network/socket/qsocks5socketengine/CMakeLists.txt41
-rw-r--r--tests/auto/network/socket/qtcpserver/CMakeLists.txt4
-rw-r--r--tests/auto/network/socket/qtcpserver/crashingServer/CMakeLists.txt16
-rw-r--r--tests/auto/network/socket/qtcpserver/test/CMakeLists.txt27
-rw-r--r--tests/auto/network/socket/qtcpserver/test/test.pro6
-rw-r--r--tests/auto/network/socket/qtcpsocket/CMakeLists.txt7
-rw-r--r--tests/auto/network/socket/qtcpsocket/stressTest/CMakeLists.txt19
-rw-r--r--tests/auto/network/socket/qtcpsocket/test/.prev_CMakeLists.txt33
-rw-r--r--tests/auto/network/socket/qtcpsocket/test/CMakeLists.txt39
-rw-r--r--tests/auto/network/socket/qudpsocket/CMakeLists.txt4
-rw-r--r--tests/auto/network/socket/qudpsocket/clientserver/CMakeLists.txt13
-rw-r--r--tests/auto/network/socket/qudpsocket/test/CMakeLists.txt34
-rw-r--r--tests/auto/network/socket/qudpsocket/udpServer/.prev_CMakeLists.txt12
-rw-r--r--tests/auto/network/socket/qudpsocket/udpServer/CMakeLists.txt13
-rw-r--r--tests/auto/network/ssl/CMakeLists.txt36
-rw-r--r--tests/auto/network/ssl/qasn1element/CMakeLists.txt13
-rw-r--r--tests/auto/network/ssl/qdtls/CMakeLists.txt25
-rw-r--r--tests/auto/network/ssl/qdtls/tst_qdtls.cpp1
-rw-r--r--tests/auto/network/ssl/qdtlscookie/CMakeLists.txt21
-rw-r--r--tests/auto/network/ssl/qocsp/CMakeLists.txt22
-rw-r--r--tests/auto/network/ssl/qocsp/tst_qocsp.cpp1
-rw-r--r--tests/auto/network/ssl/qpassworddigestor/CMakeLists.txt12
-rw-r--r--tests/auto/network/ssl/qsslcertificate/.prev_CMakeLists.txt31
-rw-r--r--tests/auto/network/ssl/qsslcertificate/CMakeLists.txt38
-rw-r--r--tests/auto/network/ssl/qsslcipher/CMakeLists.txt21
-rw-r--r--tests/auto/network/ssl/qssldiffiehellmanparameters/CMakeLists.txt12
-rw-r--r--tests/auto/network/ssl/qsslellipticcurve/CMakeLists.txt12
-rw-r--r--tests/auto/network/ssl/qsslerror/CMakeLists.txt21
-rw-r--r--tests/auto/network/ssl/qsslkey/CMakeLists.txt32
-rw-r--r--tests/auto/network/ssl/qsslsocket/CMakeLists.txt38
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp177
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/CMakeLists.txt35
-rw-r--r--tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/CMakeLists.txt34
89 files changed, 1687 insertions, 770 deletions
diff --git a/tests/auto/network/CMakeLists.txt b/tests/auto/network/CMakeLists.txt
new file mode 100644
index 0000000000..b7ba3de688
--- /dev/null
+++ b/tests/auto/network/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from network.pro.
+# special case begin
+# SSL library include path is not propagated with private tests which results in
+# test not being able to find the ssl header when they are not in the standard
+# include paths
+if (QT_FEATURE_private_tests)
+ if (QT_FEATURE_openssl AND QT_FEATURE_openssl_linked AND QT_FEATURE_ssl)
+ include_directories($<TARGET_PROPERTY:OpenSSL::SSL,INTERFACE_INCLUDE_DIRECTORIES>)
+ endif()
+
+ if (QT_FEATURE_openssl AND QT_FEATURE_ssl AND NOT QT_FEATURE_openssl_linked)
+ include_directories($<TARGET_PROPERTY:${INSTALL_CMAKE_NAMESPACE}::SSL_nolink,INTERFACE_INCLUDE_DIRECTORIES>)
+ endif()
+endif()
+# special case end
+
+add_subdirectory(access)
+add_subdirectory(bearer)
+add_subdirectory(kernel)
+add_subdirectory(ssl)
+add_subdirectory(socket)
diff --git a/tests/auto/network/access/CMakeLists.txt b/tests/auto/network/access/CMakeLists.txt
new file mode 100644
index 0000000000..432c19ec81
--- /dev/null
+++ b/tests/auto/network/access/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Generated from access.pro.
+
+add_subdirectory(qnetworkdiskcache)
+add_subdirectory(qnetworkcookiejar)
+add_subdirectory(qnetworkaccessmanager)
+add_subdirectory(qnetworkcookie)
+add_subdirectory(qnetworkrequest)
+add_subdirectory(qnetworkreply)
+add_subdirectory(qnetworkcachemetadata)
+add_subdirectory(qabstractnetworkcache)
+
+
+if(QT_FEATURE_private_tests)
+ add_subdirectory(qhttpnetworkconnection)
+ add_subdirectory(qhttpnetworkreply)
+ add_subdirectory(hpack)
+ add_subdirectory(http2)
+ add_subdirectory(hsts)
+endif()
+if(QT_FEATURE_ftp AND QT_FEATURE_private_tests)
+ add_subdirectory(qftp)
+endif()
diff --git a/tests/auto/network/access/access.pro b/tests/auto/network/access/access.pro
index b140b5e9f2..b451a2ccc6 100644
--- a/tests/auto/network/access/access.pro
+++ b/tests/auto/network/access/access.pro
@@ -1,4 +1,6 @@
TEMPLATE=subdirs
+QT_FOR_CONFIG += network
+
SUBDIRS=\
qnetworkdiskcache \
qnetworkcookiejar \
@@ -7,9 +9,7 @@ SUBDIRS=\
qnetworkrequest \
qhttpnetworkconnection \
qnetworkreply \
- spdy \
qnetworkcachemetadata \
- qftp \
qhttpnetworkreply \
qabstractnetworkcache \
hpack \
@@ -19,7 +19,8 @@ SUBDIRS=\
!qtConfig(private_tests): SUBDIRS -= \
qhttpnetworkconnection \
qhttpnetworkreply \
- qftp \
hpack \
http2 \
hsts
+
+qtConfig(ftp): qtConfig(private_tests): SUBDIRS += qftp
diff --git a/tests/auto/network/access/hpack/CMakeLists.txt b/tests/auto/network/access/hpack/CMakeLists.txt
new file mode 100644
index 0000000000..e1c5c1a469
--- /dev/null
+++ b/tests/auto/network/access/hpack/CMakeLists.txt
@@ -0,0 +1,17 @@
+# Generated from hpack.pro.
+
+#####################################################################
+## tst_hpack Test:
+#####################################################################
+
+add_qt_test(tst_hpack
+ SOURCES
+ tst_hpack.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Network
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:hpack.pro:<TRUE>:
+# TEMPLATE = "app"
diff --git a/tests/auto/network/access/hsts/CMakeLists.txt b/tests/auto/network/access/hsts/CMakeLists.txt
new file mode 100644
index 0000000000..804ebedf61
--- /dev/null
+++ b/tests/auto/network/access/hsts/CMakeLists.txt
@@ -0,0 +1,17 @@
+# Generated from hsts.pro.
+
+#####################################################################
+## tst_qhsts Test:
+#####################################################################
+
+add_qt_test(tst_qhsts
+ SOURCES
+ tst_qhsts.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Network
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:hsts.pro:<TRUE>:
+# TEMPLATE = "app"
diff --git a/tests/auto/network/access/http2/CMakeLists.txt b/tests/auto/network/access/http2/CMakeLists.txt
new file mode 100644
index 0000000000..51c7c18eac
--- /dev/null
+++ b/tests/auto/network/access/http2/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from http2.pro.
+
+#####################################################################
+## tst_http2 Test:
+#####################################################################
+
+add_qt_test(tst_http2
+ SOURCES
+ ../../../../shared/emulationdetector.h
+ http2srv.cpp http2srv.h
+ tst_http2.cpp
+ DEFINES
+ SRCDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/\\\"
+ INCLUDE_DIRECTORIES
+ ../../../../shared
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Network
+ Qt::NetworkPrivate
+)
diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp
index 6f94692cb1..904cfd52b0 100644
--- a/tests/auto/network/access/http2/tst_http2.cpp
+++ b/tests/auto/network/access/http2/tst_http2.cpp
@@ -939,13 +939,6 @@ void tst_Http2::replyFinished()
QVERIFY(http2Used.isValid());
QVERIFY(http2Used.toBool());
- const QVariant spdyUsed(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute));
- if (!spdyUsed.isValid() || spdyUsed.toBool())
- stopEventLoop();
-
- QVERIFY(spdyUsed.isValid());
- QVERIFY(!spdyUsed.toBool());
-
const QVariant code(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute));
if (!code.isValid() || !code.canConvert<int>() || code.value<int>() != 200)
stopEventLoop();
diff --git a/tests/auto/network/access/qabstractnetworkcache/CMakeLists.txt b/tests/auto/network/access/qabstractnetworkcache/CMakeLists.txt
new file mode 100644
index 0000000000..07128e40bb
--- /dev/null
+++ b/tests/auto/network/access/qabstractnetworkcache/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Generated from qabstractnetworkcache.pro.
+
+#####################################################################
+## tst_qabstractnetworkcache Test:
+#####################################################################
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ tests/*)
+list(APPEND test_data ${test_data_glob})
+
+add_qt_test(tst_qabstractnetworkcache
+ SOURCES
+ tst_qabstractnetworkcache.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ TESTDATA ${test_data}
+)
+
+#### Keys ignored in scope 1:.:.:qabstractnetworkcache.pro:<TRUE>:
+# QT_TEST_SERVER_LIST = "apache2"
diff --git a/tests/auto/network/access/qftp/CMakeLists.txt b/tests/auto/network/access/qftp/CMakeLists.txt
new file mode 100644
index 0000000000..877c3a229b
--- /dev/null
+++ b/tests/auto/network/access/qftp/CMakeLists.txt
@@ -0,0 +1,25 @@
+# Generated from qftp.pro.
+
+if(NOT QT_FEATURE_ftp)
+ return()
+endif()
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qftp Test:
+#####################################################################
+
+add_qt_test(tst_qftp
+ SOURCES
+ tst_qftp.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qftp.pro:<TRUE>:
+# QT_FOR_CONFIG = "network"
+# QT_TEST_SERVER_LIST = "vsftpd" "ftp-proxy" "squid" "danted"
+# _REQUIREMENTS = "qtConfig(ftp)" "qtConfig(private_tests)"
diff --git a/tests/auto/network/access/qftp/qftp.pro b/tests/auto/network/access/qftp/qftp.pro
index c78020c5f8..ad610316df 100644
--- a/tests/auto/network/access/qftp/qftp.pro
+++ b/tests/auto/network/access/qftp/qftp.pro
@@ -1,7 +1,9 @@
CONFIG += testcase
TARGET = tst_qftp
SOURCES += tst_qftp.cpp
+QT_FOR_CONFIG += network
+requires(qtConfig(ftp))
requires(qtConfig(private_tests))
QT = core network network-private testlib
diff --git a/tests/auto/network/access/qhttpnetworkconnection/CMakeLists.txt b/tests/auto/network/access/qhttpnetworkconnection/CMakeLists.txt
new file mode 100644
index 0000000000..6ab8876c82
--- /dev/null
+++ b/tests/auto/network/access/qhttpnetworkconnection/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from qhttpnetworkconnection.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qhttpnetworkconnection Test:
+#####################################################################
+
+add_qt_test(tst_qhttpnetworkconnection
+ SOURCES
+ tst_qhttpnetworkconnection.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qhttpnetworkconnection.pro:<TRUE>:
+# QT_TEST_SERVER_LIST = "apache2"
+# _REQUIREMENTS = "qtConfig(private_tests)"
diff --git a/tests/auto/network/access/qhttpnetworkreply/CMakeLists.txt b/tests/auto/network/access/qhttpnetworkreply/CMakeLists.txt
new file mode 100644
index 0000000000..8c68a18da6
--- /dev/null
+++ b/tests/auto/network/access/qhttpnetworkreply/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from qhttpnetworkreply.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qhttpnetworkreply Test:
+#####################################################################
+
+add_qt_test(tst_qhttpnetworkreply
+ SOURCES
+ tst_qhttpnetworkreply.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qhttpnetworkreply.pro:<TRUE>:
+# _REQUIREMENTS = "qtConfig(private_tests)"
diff --git a/tests/auto/network/access/qnetworkaccessmanager/CMakeLists.txt b/tests/auto/network/access/qnetworkaccessmanager/CMakeLists.txt
new file mode 100644
index 0000000000..4b58c449c6
--- /dev/null
+++ b/tests/auto/network/access/qnetworkaccessmanager/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkaccessmanager.pro.
+
+#####################################################################
+## tst_qnetworkaccessmanager Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkaccessmanager
+ SOURCES
+ tst_qnetworkaccessmanager.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/access/qnetworkcachemetadata/CMakeLists.txt b/tests/auto/network/access/qnetworkcachemetadata/CMakeLists.txt
new file mode 100644
index 0000000000..08e80d8e0d
--- /dev/null
+++ b/tests/auto/network/access/qnetworkcachemetadata/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkcachemetadata.pro.
+
+#####################################################################
+## tst_qnetworkcachemetadata Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkcachemetadata
+ SOURCES
+ tst_qnetworkcachemetadata.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/access/qnetworkcookie/CMakeLists.txt b/tests/auto/network/access/qnetworkcookie/CMakeLists.txt
new file mode 100644
index 0000000000..ab90a61bb3
--- /dev/null
+++ b/tests/auto/network/access/qnetworkcookie/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkcookie.pro.
+
+#####################################################################
+## tst_qnetworkcookie Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkcookie
+ SOURCES
+ tst_qnetworkcookie.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/access/qnetworkcookiejar/CMakeLists.txt b/tests/auto/network/access/qnetworkcookiejar/CMakeLists.txt
new file mode 100644
index 0000000000..929388a10a
--- /dev/null
+++ b/tests/auto/network/access/qnetworkcookiejar/CMakeLists.txt
@@ -0,0 +1,18 @@
+# Generated from qnetworkcookiejar.pro.
+
+#####################################################################
+## tst_qnetworkcookiejar Test:
+#####################################################################
+
+# Collect test data
+list(APPEND test_data "parser.json")
+
+add_qt_test(tst_qnetworkcookiejar
+ SOURCES
+ tst_qnetworkcookiejar.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::Network
+ Qt::NetworkPrivate
+ TESTDATA ${test_data}
+)
diff --git a/tests/auto/network/access/qnetworkdiskcache/CMakeLists.txt b/tests/auto/network/access/qnetworkdiskcache/CMakeLists.txt
new file mode 100644
index 0000000000..b206686139
--- /dev/null
+++ b/tests/auto/network/access/qnetworkdiskcache/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkdiskcache.pro.
+
+#####################################################################
+## tst_qnetworkdiskcache Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkdiskcache
+ SOURCES
+ tst_qnetworkdiskcache.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/access/qnetworkreply/BLACKLIST b/tests/auto/network/access/qnetworkreply/BLACKLIST
index 801ac65d71..a2c6224ce0 100644
--- a/tests/auto/network/access/qnetworkreply/BLACKLIST
+++ b/tests/auto/network/access/qnetworkreply/BLACKLIST
@@ -15,8 +15,6 @@ linux
# QTBUG-71953
[getFromHttp]
* !android !winrt
-[getFromHttp:success-external]
-*
[getFromHttpIntoBuffer]
osx
[getFromHttpIntoBuffer2]
diff --git a/tests/auto/network/access/qnetworkreply/CMakeLists.txt b/tests/auto/network/access/qnetworkreply/CMakeLists.txt
new file mode 100644
index 0000000000..f7efa8f7f3
--- /dev/null
+++ b/tests/auto/network/access/qnetworkreply/CMakeLists.txt
@@ -0,0 +1,7 @@
+# Generated from qnetworkreply.pro.
+
+add_subdirectory(test)
+
+if(NOT WINRT)
+ add_subdirectory(echo)
+endif()
diff --git a/tests/auto/network/access/qnetworkreply/echo/.prev_CMakeLists.txt b/tests/auto/network/access/qnetworkreply/echo/.prev_CMakeLists.txt
new file mode 100644
index 0000000000..e43272d7e8
--- /dev/null
+++ b/tests/auto/network/access/qnetworkreply/echo/.prev_CMakeLists.txt
@@ -0,0 +1,10 @@
+# Generated from echo.pro.
+
+#####################################################################
+## echo Binary:
+#####################################################################
+
+add_qt_executable(echo
+ SOURCES
+ main.cpp
+)
diff --git a/tests/auto/network/access/qnetworkreply/echo/CMakeLists.txt b/tests/auto/network/access/qnetworkreply/echo/CMakeLists.txt
new file mode 100644
index 0000000000..f260b97b8d
--- /dev/null
+++ b/tests/auto/network/access/qnetworkreply/echo/CMakeLists.txt
@@ -0,0 +1,11 @@
+# Generated from echo.pro.
+
+#####################################################################
+## echo Binary:
+#####################################################################
+
+add_qt_executable(echo
+ OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} # special case
+ SOURCES
+ main.cpp
+)
diff --git a/tests/auto/network/access/qnetworkreply/test/CMakeLists.txt b/tests/auto/network/access/qnetworkreply/test/CMakeLists.txt
new file mode 100644
index 0000000000..ef017edf58
--- /dev/null
+++ b/tests/auto/network/access/qnetworkreply/test/CMakeLists.txt
@@ -0,0 +1,60 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qnetworkreply Test:
+#####################################################################
+
+# Collect test data
+list(APPEND test_data "../empty")
+list(APPEND test_data "../rfc3252.txt")
+list(APPEND test_data "../resource")
+list(APPEND test_data "../bigfile")
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ../*.jpg)
+list(APPEND test_data ${test_data_glob})
+list(APPEND test_data "../certs")
+list(APPEND test_data "../index.html")
+list(APPEND test_data "../smb-file.txt")
+
+add_qt_test(tst_qnetworkreply
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../" # special case
+ SOURCES
+ ../../../../../shared/emulationdetector.h
+ ../tst_qnetworkreply.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../../shared
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+ TESTDATA ${test_data}
+)
+
+# Resources:
+set_source_files_properties("../resource"
+ PROPERTIES QT_RESOURCE_ALIAS "resource"
+)
+set(qnetworkreply_resource_files
+ "resource"
+)
+
+add_qt_resource(tst_qnetworkreply "qnetworkreply"
+ PREFIX
+ "/"
+ BASE
+ ".."
+ FILES
+ ${qnetworkreply_resource_files}
+)
+
+
+#### Keys ignored in scope 1:.:.:test.pro:<TRUE>:
+# QT_FOR_CONFIG = "gui-private"
+# QT_TEST_SERVER_LIST = "vsftpd" "apache2" "ftp-proxy" "danted" "squid"
+# testcase.timeout = "600"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 2:.:.:test.pro:NOT ANDROID AND NOT WINRT:
+# TEST_HELPER_INSTALLS = "../echo/echo"
diff --git a/tests/auto/network/access/qnetworkreply/test/test.pro b/tests/auto/network/access/qnetworkreply/test/test.pro
index 4cc1f6431e..d3385c1929 100644
--- a/tests/auto/network/access/qnetworkreply/test/test.pro
+++ b/tests/auto/network/access/qnetworkreply/test/test.pro
@@ -4,7 +4,7 @@ CONFIG -= debug_and_release_target
INCLUDEPATH += ../../../../../shared/
HEADERS += ../../../../../shared/emulationdetector.h
SOURCES += ../tst_qnetworkreply.cpp
-TARGET = ../tst_qnetworkreply
+TARGET = tst_qnetworkreply
QT = core-private network-private testlib
QT_FOR_CONFIG += gui-private
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
index 65f355ca25..5d46002a7c 100644
--- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -219,9 +219,11 @@ private Q_SLOTS:
void getFromFile();
void getFromFileSpecial_data();
void getFromFileSpecial();
+#if QT_CONFIG(ftp)
void getFromFtp_data();
void getFromFtp();
void getFromFtpAfterError(); // QTBUG-40797
+#endif
void getFromHttp_data();
void getFromHttp();
void getErrors_data();
@@ -232,9 +234,11 @@ private Q_SLOTS:
#endif // !QT_NO_NETWORKPROXY
void putToFile_data();
void putToFile();
+#if QT_CONFIG(ftp)
void putToFtp_data();
void putToFtp();
void putToFtpWithInvalidCredentials(); // QTBUG-40622
+#endif
void putToHttp_data();
void putToHttp();
void putToHttpSynchronous_data();
@@ -275,9 +279,11 @@ private Q_SLOTS:
void ioGetFromFileSpecial();
void ioGetFromFile_data();
void ioGetFromFile();
+#if QT_CONFIG(ftp)
void ioGetFromFtp_data();
void ioGetFromFtp();
void ioGetFromFtpWithReuse();
+#endif
void ioGetFromHttp();
void ioGetFromBuiltinHttp_data();
@@ -319,8 +325,10 @@ private Q_SLOTS:
void ioPutToFileFromLocalSocket();
void ioPutToFileFromProcess_data();
void ioPutToFileFromProcess();
+#if QT_CONFIG(ftp)
void ioPutToFtpFromFile_data();
void ioPutToFtpFromFile();
+#endif
void ioPutToHttpFromFile_data();
void ioPutToHttpFromFile();
void ioPostToHttpFromFile_data();
@@ -466,8 +474,10 @@ private Q_SLOTS:
void closeDuringDownload_data();
void closeDuringDownload();
+#if QT_CONFIG(ftp)
void ftpAuthentication_data();
void ftpAuthentication();
+#endif
void emitErrorForAllReplies(); // QTBUG-36890
@@ -1852,6 +1862,7 @@ void tst_QNetworkReply::getFromFileSpecial()
QCOMPARE(reply->readAll(), resource.readAll());
}
+#if QT_CONFIG(ftp)
void tst_QNetworkReply::getFromFtp_data()
{
QTest::addColumn<QString>("referenceName");
@@ -1904,6 +1915,7 @@ void tst_QNetworkReply::getFromFtpAfterError()
QCOMPARE(validReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
QCOMPARE(validReply->readAll(), reference.readAll());
}
+#endif
void tst_QNetworkReply::getFromHttp_data()
{
@@ -1914,10 +1926,6 @@ void tst_QNetworkReply::getFromHttp_data()
<< testDataDir + "/rfc3252.txt"
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt";
- QTest::newRow("success-external")
- << testDataDir + "/rfc3252.txt"
- << "http://www.ietf.org/rfc/rfc3252.txt";
-
QTest::newRow("bigfile-internal")
<< testDataDir + "/bigfile"
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/bigfile";
@@ -2077,6 +2085,7 @@ void tst_QNetworkReply::getErrors_data()
QTest::newRow("file-permissions") << "file:" + filePermissionFileName
<< int(QNetworkReply::ContentAccessDenied) << 0 << true;
+#if QT_CONFIG(ftp)
// ftp: errors
QTest::newRow("ftp-host") << "ftp://invalid.test.qt-project.org/foo.txt"
<< int(QNetworkReply::HostNotFoundError) << 0 << true;
@@ -2090,6 +2099,7 @@ void tst_QNetworkReply::getErrors_data()
<< int(QNetworkReply::ContentAccessDenied) << 0 << true;
QTest::newRow("ftp-exist") << "ftp://" + QtNetworkSettings::ftpServerName() + "/pub/this-file-doesnt-exist.txt"
<< int(QNetworkReply::ContentNotFoundError) << 0 << true;
+#endif
// http: errors
QTest::newRow("http-host") << "http://invalid.test.qt-project.org/"
@@ -2143,9 +2153,11 @@ void tst_QNetworkReply::getErrors()
QVERIFY2(waitResult != Timeout, msgGetErrors(waitResult, reply));
QFETCH(int, error);
+#if QT_CONFIG(ftp)
QEXPECT_FAIL("ftp-is-dir", "QFtp cannot provide enough detail", Abort);
// the line below is not necessary
QEXPECT_FAIL("ftp-dir-not-readable", "QFtp cannot provide enough detail", Abort);
+#endif
QCOMPARE(reply->error(), QNetworkReply::NetworkError(error));
QTEST(reply->readAll().isEmpty(), "dataIsEmpty");
@@ -2215,6 +2227,7 @@ void tst_QNetworkReply::putToFile()
QCOMPARE(contents, data);
}
+#if QT_CONFIG(ftp)
void tst_QNetworkReply::putToFtp_data()
{
putToFile_data();
@@ -2287,6 +2300,7 @@ void tst_QNetworkReply::putToFtpWithInvalidCredentials()
r->close();
}
}
+#endif
void tst_QNetworkReply::putToHttp_data()
{
@@ -3287,6 +3301,7 @@ void tst_QNetworkReply::ioGetFromFile()
QCOMPARE(reader.data, data);
}
+#if QT_CONFIG(ftp)
void tst_QNetworkReply::ioGetFromFtp_data()
{
QTest::addColumn<QString>("fileName");
@@ -3353,6 +3368,7 @@ void tst_QNetworkReply::ioGetFromFtpWithReuse()
QCOMPARE(reader1.data, referenceData);
QCOMPARE(reader2.data, referenceData);
}
+#endif
void tst_QNetworkReply::ioGetFromHttp()
{
@@ -4209,6 +4225,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError;
+#if QT_CONFIG(ftp)
// FTP request with FTP caching proxy
proxyList.clear();
proxyList << QNetworkProxy(QNetworkProxy::FtpCachingProxy, QtNetworkSettings::ftpProxyServerName(), 2121);
@@ -4227,6 +4244,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< proxyList << proxyList.at(0)
<< "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError;
+#endif
#ifndef QT_NO_SSL
// HTTPS with HTTP transparent proxy
@@ -4256,6 +4274,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::ProxyNotFoundError;
+#if QT_CONFIG(ftp)
// FTP request with HTTP caching proxy
proxyList.clear();
proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129);
@@ -4272,6 +4291,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< proxyList << QNetworkProxy()
<< "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::ProxyNotFoundError;
+#endif
#ifndef QT_NO_SSL
// HTTPS with HTTP caching proxy
@@ -4339,6 +4359,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< "http://" + QtNetworkSettings::httpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError;
+#if QT_CONFIG(ftp)
// FTP request with HTTP Caching + FTP
proxyList.clear();
proxyList << QNetworkProxy(QNetworkProxy::HttpCachingProxy, QtNetworkSettings::httpProxyServerName(), 3129)
@@ -4347,6 +4368,7 @@ void tst_QNetworkReply::ioGetWithManyProxies_data()
<< proxyList << proxyList.at(1) // second proxy should be used
<< "ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt"
<< QNetworkReply::NoError;
+#endif
#ifndef QT_NO_SSL
// HTTPS request with HTTP Caching + HTTP transparent
@@ -4407,7 +4429,9 @@ void tst_QNetworkReply::ioGetWithManyProxies()
#endif
QFETCH(QNetworkReply::NetworkError, expectedError);
+#if QT_CONFIG(ftp)
QEXPECT_FAIL("ftp-on-socks", "QFtp is too limited and won't accept non-FTP proxies", Abort);
+#endif
QCOMPARE(reply->error(), expectedError);
// Verify that the factory was called properly
@@ -4423,8 +4447,10 @@ void tst_QNetworkReply::ioGetWithManyProxies()
if (proxyUsed.type() == QNetworkProxy::NoProxy) {
QCOMPARE(authspy.count(), 0);
} else {
+#if QT_CONFIG(ftp)
if (QByteArray(QTest::currentDataTag()).startsWith("ftp-"))
return; // No authentication with current FTP or with FTP proxies
+#endif
QCOMPARE(authspy.count(), 1);
QCOMPARE(qvariant_cast<QNetworkProxy>(authspy.at(0).at(0)), proxyUsed);
}
@@ -4605,6 +4631,7 @@ void tst_QNetworkReply::ioPutToFileFromProcess()
#endif // QT_CONFIG(process)
}
+#if QT_CONFIG(ftp)
void tst_QNetworkReply::ioPutToFtpFromFile_data()
{
ioPutToFileFromFile_data();
@@ -4653,6 +4680,7 @@ void tst_QNetworkReply::ioPutToFtpFromFile()
QTestEventLoop::instance().enterLoop(10);
QObject::disconnect(r, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
}
+#endif
void tst_QNetworkReply::ioPutToHttpFromFile_data()
{
@@ -8025,7 +8053,9 @@ void tst_QNetworkReply::closeDuringDownload_data()
{
QTest::addColumn<QUrl>("url");
QTest::newRow("http") << QUrl("http://" + QtNetworkSettings::httpServerName() + "/bigfile");
+#if QT_CONFIG(ftp)
QTest::newRow("ftp") << QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile");
+#endif
}
void tst_QNetworkReply::closeDuringDownload()
@@ -8043,6 +8073,7 @@ void tst_QNetworkReply::closeDuringDownload()
QVERIFY(destroySpy.wait());
}
+#if QT_CONFIG(ftp)
void tst_QNetworkReply::ftpAuthentication_data()
{
QTest::addColumn<QString>("referenceName");
@@ -8069,6 +8100,7 @@ void tst_QNetworkReply::ftpAuthentication()
QCOMPARE(reply->url(), request.url());
QCOMPARE(reply->error(), QNetworkReply::NetworkError(error));
}
+#endif
void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890
{
@@ -8112,7 +8144,9 @@ void tst_QNetworkReply::backgroundRequest_data()
QUrl httpurl("http://" + QtNetworkSettings::httpServerName());
QUrl httpsurl("https://" + QtNetworkSettings::httpServerName());
+#if QT_CONFIG(ftp)
QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt");
+#endif
QTest::newRow("http, fg, normal") << httpurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
QTest::newRow("http, bg, normal") << httpurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
@@ -8126,10 +8160,12 @@ void tst_QNetworkReply::backgroundRequest_data()
QTest::newRow("https, bg, nobg") << httpsurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError;
#endif
+#if QT_CONFIG(ftp)
QTest::newRow("ftp, fg, normal") << ftpurl << false << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
QTest::newRow("ftp, bg, normal") << ftpurl << true << (int)QNetworkSession::NoPolicy << QNetworkReply::NoError;
QTest::newRow("ftp, fg, nobg") << ftpurl << false << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::NoError;
QTest::newRow("ftp, bg, nobg") << ftpurl << true << (int)QNetworkSession::NoBackgroundTrafficPolicy << QNetworkReply::BackgroundRequestNotAllowedError;
+#endif
#endif // !QT_NO_BEARERMANAGEMENT
}
#endif
@@ -8184,7 +8220,9 @@ void tst_QNetworkReply::backgroundRequestInterruption_data()
QUrl httpurl("http://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile");
QUrl httpsurl("https://" + QtNetworkSettings::httpServerName() + "/qtest/mediumfile");
+#if QT_CONFIG(ftp)
QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/bigfile");
+#endif
QTest::newRow("http, fg, nobg") << httpurl << false << QNetworkReply::NoError;
QTest::newRow("http, bg, nobg") << httpurl << true << QNetworkReply::BackgroundRequestNotAllowedError;
@@ -8194,9 +8232,10 @@ void tst_QNetworkReply::backgroundRequestInterruption_data()
QTest::newRow("https, bg, nobg") << httpsurl << true << QNetworkReply::BackgroundRequestNotAllowedError;
#endif
+#if QT_CONFIG(ftp)
QTest::newRow("ftp, fg, nobg") << ftpurl << false << QNetworkReply::NoError;
QTest::newRow("ftp, bg, nobg") << ftpurl << true << QNetworkReply::BackgroundRequestNotAllowedError;
-
+#endif
}
#endif
@@ -8260,13 +8299,17 @@ void tst_QNetworkReply::backgroundRequestConnectInBackground_data()
QTest::addColumn<bool>("background");
QUrl httpurl("http://" + QtNetworkSettings::httpServerName());
+#if QT_CONFIG(ftp)
QUrl ftpurl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/rfc3252.txt");
+#endif
QTest::newRow("http, fg") << httpurl << false;
QTest::newRow("http, bg") << httpurl << true;
+#if QT_CONFIG(ftp)
QTest::newRow("ftp, fg") << ftpurl << false;
QTest::newRow("ftp, bg") << ftpurl << true;
+#endif
}
#endif
@@ -9192,7 +9235,9 @@ void tst_QNetworkReply::autoDeleteRepliesAttribute_data()
QTest::newRow("http") << QUrl("http://QInvalidDomain.qt/test");
QTest::newRow("https") << QUrl("https://QInvalidDomain.qt/test");
+#if QT_CONFIG(ftp)
QTest::newRow("ftp") << QUrl("ftp://QInvalidDomain.qt/test");
+#endif
QTest::newRow("file") << QUrl("file:///thisfolderdoesn'texist/probably.txt");
#ifdef Q_OS_WIN
// Only supported on windows.
diff --git a/tests/auto/network/access/qnetworkrequest/CMakeLists.txt b/tests/auto/network/access/qnetworkrequest/CMakeLists.txt
new file mode 100644
index 0000000000..f089c5a43e
--- /dev/null
+++ b/tests/auto/network/access/qnetworkrequest/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkrequest.pro.
+
+#####################################################################
+## tst_qnetworkrequest Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkrequest
+ SOURCES
+ tst_qnetworkrequest.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/access/spdy/BLACKLIST b/tests/auto/network/access/spdy/BLACKLIST
deleted file mode 100644
index 5cf79327be..0000000000
--- a/tests/auto/network/access/spdy/BLACKLIST
+++ /dev/null
@@ -1,7 +0,0 @@
-[download]
-opensuse-leap
-[upload]
-opensuse-leap
-ubuntu-18.04
-b2qt
-
diff --git a/tests/auto/network/access/spdy/spdy.pro b/tests/auto/network/access/spdy/spdy.pro
deleted file mode 100644
index cdbe60a19b..0000000000
--- a/tests/auto/network/access/spdy/spdy.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG += testcase
-TARGET = tst_spdy
-SOURCES += tst_spdy.cpp
-
-QT = core core-private network network-private testlib
-
-win32:CONFIG += insignificant_test # QTBUG-47128
diff --git a/tests/auto/network/access/spdy/tst_spdy.cpp b/tests/auto/network/access/spdy/tst_spdy.cpp
deleted file mode 100644
index 5701f4911c..0000000000
--- a/tests/auto/network/access/spdy/tst_spdy.cpp
+++ /dev/null
@@ -1,694 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-#include <QtNetwork/QNetworkAccessManager>
-#include <QtNetwork/QNetworkReply>
-#include <QtNetwork/QHttpPart>
-#include <QtNetwork/QHttpMultiPart>
-#include <QtNetwork/QNetworkProxy>
-#include <QtNetwork/QAuthenticator>
-#if defined(QT_BUILD_INTERNAL) && !defined(QT_NO_OPENSSL)
-#include <QtNetwork/private/qsslsocket_openssl_p.h>
-#endif // QT_BUILD_INTERNAL && !QT_NO_OPENSSL
-
-#include "../../../network-settings.h"
-
-Q_DECLARE_METATYPE(QAuthenticator*)
-
-class tst_Spdy: public QObject
-{
- Q_OBJECT
-
-public:
- tst_Spdy();
- ~tst_Spdy();
-
-private Q_SLOTS:
- void initTestCase();
- void settingsAndNegotiation_data();
- void settingsAndNegotiation();
-#ifndef QT_NO_NETWORKPROXY
- void download_data();
- void download();
-#endif // !QT_NO_NETWORKPROXY
- void headerFields();
-#ifndef QT_NO_NETWORKPROXY
- void upload_data();
- void upload();
- void errors_data();
- void errors();
-#endif // !QT_NO_NETWORKPROXY
- void multipleRequests_data();
- void multipleRequests();
-
-private:
- QNetworkAccessManager m_manager;
- int m_multipleRequestsCount;
- int m_multipleRepliesFinishedCount;
- const QString m_rfc3252FilePath;
-
-protected Q_SLOTS:
- void proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *authenticator);
- void multipleRequestsFinishedSlot();
-};
-
-tst_Spdy::tst_Spdy()
- : m_rfc3252FilePath(QFINDTESTDATA("../qnetworkreply/rfc3252.txt"))
-{
-#if defined(QT_BUILD_INTERNAL) && !defined(QT_NO_SSL) && OPENSSL_VERSION_NUMBER >= 0x1000100fL && !defined(OPENSSL_NO_TLSEXT) && !defined(OPENSSL_NO_NEXTPROTONEG)
- qRegisterMetaType<QNetworkReply *>(); // for QSignalSpy
- qRegisterMetaType<QAuthenticator *>();
-
- connect(&m_manager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
- this, SLOT(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)));
-#else
- QSKIP("Qt built withouth OpenSSL, or the OpenSSL version is too old");
-#endif // defined(QT_BUILD_INTERNAL) && !defined(QT_NO_SSL) ...
-}
-
-tst_Spdy::~tst_Spdy()
-{
-}
-
-void tst_Spdy::initTestCase()
-{
- QVERIFY(!m_rfc3252FilePath.isEmpty());
- if (!QtNetworkSettings::verifyTestNetworkSettings())
- QSKIP("No network test server available");
-}
-
-void tst_Spdy::settingsAndNegotiation_data()
-{
- QTest::addColumn<QUrl>("url");
- QTest::addColumn<bool>("setAttribute");
- QTest::addColumn<bool>("enabled");
- QTest::addColumn<QByteArray>("expectedProtocol");
- QTest::addColumn<QByteArray>("expectedContent");
-
- QTest::newRow("default-settings") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/cgi-bin/echo.cgi?1")
- << false << false << QByteArray()
- << QByteArray("1");
-
- QTest::newRow("http-url") << QUrl("http://" + QtNetworkSettings::serverName()
- + "/qtest/cgi-bin/echo.cgi?1")
- << true << true << QByteArray()
- << QByteArray("1");
-
- QTest::newRow("spdy-disabled") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/cgi-bin/echo.cgi?1")
- << true << false << QByteArray()
- << QByteArray("1");
-
-#ifndef QT_NO_OPENSSL
- QTest::newRow("spdy-enabled") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/cgi-bin/echo.cgi?1")
- << true << true << QByteArray(QSslConfiguration::NextProtocolSpdy3_0)
- << QByteArray("1");
-#endif // QT_NO_OPENSSL
-}
-
-void tst_Spdy::settingsAndNegotiation()
-{
- QFETCH(QUrl, url);
- QFETCH(bool, setAttribute);
- QFETCH(bool, enabled);
-
- QNetworkRequest request(url);
-
- if (setAttribute) {
- request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, QVariant(enabled));
- }
-
- QNetworkReply *reply = m_manager.get(request);
- reply->ignoreSslErrors();
- QSignalSpy metaDataChangedSpy(reply, SIGNAL(metaDataChanged()));
- QSignalSpy readyReadSpy(reply, SIGNAL(readyRead()));
- QSignalSpy finishedSpy(reply, SIGNAL(finished()));
-
- QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
- QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
-
- QTestEventLoop::instance().enterLoop(15);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- QFETCH(QByteArray, expectedProtocol);
-
-#ifndef QT_NO_OPENSSL
- bool expectedSpdyUsed = (expectedProtocol == QSslConfiguration::NextProtocolSpdy3_0);
- QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), expectedSpdyUsed);
-#endif // QT_NO_OPENSSL
-
- QCOMPARE(metaDataChangedSpy.count(), 1);
- QCOMPARE(finishedSpy.count(), 1);
-
- int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
- QCOMPARE(statusCode, 200);
-
- QByteArray content = reply->readAll();
-
- QFETCH(QByteArray, expectedContent);
- QCOMPARE(expectedContent, content);
-
-#ifndef QT_NO_OPENSSL
- QSslConfiguration::NextProtocolNegotiationStatus expectedStatus =
- (expectedProtocol.isEmpty())
- ? QSslConfiguration::NextProtocolNegotiationNone
- : QSslConfiguration::NextProtocolNegotiationNegotiated;
- QCOMPARE(reply->sslConfiguration().nextProtocolNegotiationStatus(),
- expectedStatus);
-
- QCOMPARE(reply->sslConfiguration().nextNegotiatedProtocol(), expectedProtocol);
-#endif // QT_NO_OPENSSL
-}
-
-void tst_Spdy::proxyAuthenticationRequired(const QNetworkProxy &/*proxy*/,
- QAuthenticator *authenticator)
-{
- authenticator->setUser("qsockstest");
- authenticator->setPassword("password");
-}
-
-#ifndef QT_NO_NETWORKPROXY
-void tst_Spdy::download_data()
-{
- QTest::addColumn<QUrl>("url");
- QTest::addColumn<QString>("fileName");
- QTest::addColumn<QNetworkProxy>("proxy");
-
- QTest::newRow("mediumfile") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/rfc3252.txt")
- << m_rfc3252FilePath
- << QNetworkProxy();
-
- QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName());
- QString proxyserver = hostInfo.addresses().first().toString();
-
- QTest::newRow("mediumfile-http-proxy") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/rfc3252.txt")
- << m_rfc3252FilePath
- << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3128);
-
- QTest::newRow("mediumfile-http-proxy-auth") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/rfc3252.txt")
- << m_rfc3252FilePath
- << QNetworkProxy(QNetworkProxy::HttpProxy,
- proxyserver, 3129);
-
- QTest::newRow("mediumfile-socks-proxy") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/rfc3252.txt")
- << m_rfc3252FilePath
- << QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1080);
-
- QTest::newRow("mediumfile-socks-proxy-auth") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/rfc3252.txt")
- << m_rfc3252FilePath
- << QNetworkProxy(QNetworkProxy::Socks5Proxy,
- proxyserver, 1081);
-
- QTest::newRow("bigfile") << QUrl("https://" + QtNetworkSettings::serverName()
- + "/qtest/bigfile")
- << QFINDTESTDATA("../qnetworkreply/bigfile")
- << QNetworkProxy();
-}
-
-void tst_Spdy::download()
-{
- QFETCH(QUrl, url);
- QFETCH(QString, fileName);
- QFETCH(QNetworkProxy, proxy);
-
- QNetworkRequest request(url);
- request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
-
- if (proxy.type() != QNetworkProxy::DefaultProxy) {
- m_manager.setProxy(proxy);
- }
- QNetworkReply *reply = m_manager.get(request);
- reply->ignoreSslErrors();
- QSignalSpy metaDataChangedSpy(reply, SIGNAL(metaDataChanged()));
- QSignalSpy downloadProgressSpy(reply, SIGNAL(downloadProgress(qint64, qint64)));
- QSignalSpy readyReadSpy(reply, SIGNAL(readyRead()));
- QSignalSpy finishedSpy(reply, SIGNAL(finished()));
-
- QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
- QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
- QSignalSpy proxyAuthRequiredSpy(&m_manager, SIGNAL(
- proxyAuthenticationRequired(const QNetworkProxy &,
- QAuthenticator *)));
-
- QTestEventLoop::instance().enterLoop(15);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- QCOMPARE(finishedManagerSpy.count(), 1);
- QCOMPARE(metaDataChangedSpy.count(), 1);
- QCOMPARE(finishedSpy.count(), 1);
- QVERIFY(downloadProgressSpy.count() > 0);
- QVERIFY(readyReadSpy.count() > 0);
-
- QVERIFY(proxyAuthRequiredSpy.count() <= 1);
-
- QCOMPARE(reply->error(), QNetworkReply::NoError);
- QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), true);
- QCOMPARE(reply->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool(), true);
- QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
-
- QFile file(fileName);
- QVERIFY(file.open(QIODevice::ReadOnly));
-
- qint64 contentLength = reply->header(QNetworkRequest::ContentLengthHeader).toLongLong();
- qint64 expectedContentLength = file.bytesAvailable();
- QCOMPARE(contentLength, expectedContentLength);
-
- QByteArray expectedContent = file.readAll();
- QByteArray content = reply->readAll();
- QCOMPARE(content, expectedContent);
-
- reply->deleteLater();
- m_manager.setProxy(QNetworkProxy()); // reset
-}
-#endif // !QT_NO_NETWORKPROXY
-
-void tst_Spdy::headerFields()
-{
- QUrl url(QUrl("https://" + QtNetworkSettings::serverName()));
- QNetworkRequest request(url);
- request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
-
- QNetworkReply *reply = m_manager.get(request);
- reply->ignoreSslErrors();
-
- QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- QTestEventLoop::instance().enterLoop(15);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- QCOMPARE(reply->rawHeader("Content-Type"), QByteArray("text/html"));
- QVERIFY(reply->rawHeader("Content-Length").toInt() > 0);
- QVERIFY(reply->rawHeader("server").contains("Apache"));
-
- QCOMPARE(reply->header(QNetworkRequest::ContentTypeHeader).toByteArray(), QByteArray("text/html"));
- QVERIFY(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong() > 0);
- QVERIFY(reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().isValid());
- QVERIFY(reply->header(QNetworkRequest::ServerHeader).toByteArray().contains("Apache"));
-}
-
-static inline QByteArray md5sum(const QByteArray &data)
-{
- return QCryptographicHash::hash(data, QCryptographicHash::Md5).toHex().append('\n');
-}
-
-#ifndef QT_NO_NETWORKPROXY
-void tst_Spdy::upload_data()
-{
- QTest::addColumn<QUrl>("url");
- QTest::addColumn<QByteArray>("data");
- QTest::addColumn<QByteArray>("uploadMethod");
- QTest::addColumn<QObject *>("uploadObject");
- QTest::addColumn<QByteArray>("md5sum");
- QTest::addColumn<QNetworkProxy>("proxy");
-
-
- // 1. test uploading of byte arrays
-
- QUrl md5Url("https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/md5sum.cgi");
-
- QByteArray data;
- data = "";
- QObject *dummyObject = 0;
- QTest::newRow("empty") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data) << QNetworkProxy();
-
- data = "This is a normal message.";
- QTest::newRow("generic") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data) << QNetworkProxy();
-
- data = "This is a message to show that Qt rocks!\r\n\n";
- QTest::newRow("small") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data) << QNetworkProxy();
-
- data = QByteArray("abcd\0\1\2\abcd",12);
- QTest::newRow("with-nul") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data) << QNetworkProxy();
-
- data = QByteArray(4097, '\4');
- QTest::newRow("4k+1") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data)<< QNetworkProxy();
-
- QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName());
- QString proxyserver = hostInfo.addresses().first().toString();
-
- QTest::newRow("4k+1-with-http-proxy") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data)
- << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3128);
-
- QTest::newRow("4k+1-with-http-proxy-auth") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data)
- << QNetworkProxy(QNetworkProxy::HttpProxy,
- proxyserver, 3129);
-
- QTest::newRow("4k+1-with-socks-proxy") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data)
- << QNetworkProxy(QNetworkProxy::Socks5Proxy, proxyserver, 1080);
-
- QTest::newRow("4k+1-with-socks-proxy-auth") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data)
- << QNetworkProxy(QNetworkProxy::Socks5Proxy,
- proxyserver, 1081);
-
- data = QByteArray(128*1024+1, '\177');
- QTest::newRow("128k+1") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data) << QNetworkProxy();
-
- data = QByteArray(128*1024+1, '\177');
- QTest::newRow("128k+1-put") << md5Url << data << QByteArray("PUT") << dummyObject
- << md5sum(data) << QNetworkProxy();
-
- data = QByteArray(2*1024*1024+1, '\177');
- QTest::newRow("2MB+1") << md5Url << data << QByteArray("POST") << dummyObject
- << md5sum(data) << QNetworkProxy();
-
-
- // 2. test uploading of files
-
- QFile *file = new QFile(m_rfc3252FilePath);
- file->open(QIODevice::ReadOnly);
- QTest::newRow("file-26K") << md5Url << QByteArray() << QByteArray("POST")
- << static_cast<QObject *>(file)
- << QByteArray("b3e32ac459b99d3f59318f3ac31e4bee\n") << QNetworkProxy();
-
- QFile *file2 = new QFile(QFINDTESTDATA("../qnetworkreply/image1.jpg"));
- file2->open(QIODevice::ReadOnly);
- QTest::newRow("file-1MB") << md5Url << QByteArray() << QByteArray("POST")
- << static_cast<QObject *>(file2)
- << QByteArray("87ef3bb319b004ba9e5e9c9fa713776e\n") << QNetworkProxy();
-
-
- // 3. test uploading of multipart
-
- QUrl multiPartUrl("https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/multipart.cgi");
-
- QHttpPart imagePart31;
- imagePart31.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
- imagePart31.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"testImage1\""));
- imagePart31.setRawHeader("Content-Location", "http://my.test.location.tld");
- imagePart31.setRawHeader("Content-ID", "my@id.tld");
- QFile *file31 = new QFile(QFINDTESTDATA("../qnetworkreply/image1.jpg"));
- file31->open(QIODevice::ReadOnly);
- imagePart31.setBodyDevice(file31);
- QHttpMultiPart *imageMultiPart3 = new QHttpMultiPart(QHttpMultiPart::FormDataType);
- imageMultiPart3->append(imagePart31);
- file31->setParent(imageMultiPart3);
- QHttpPart imagePart32;
- imagePart32.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
- imagePart32.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"testImage2\""));
- QFile *file32 = new QFile(QFINDTESTDATA("../qnetworkreply/image2.jpg"));
- file32->open(QIODevice::ReadOnly);
- imagePart32.setBodyDevice(file31); // check that resetting works
- imagePart32.setBodyDevice(file32);
- imageMultiPart3->append(imagePart32);
- file32->setParent(imageMultiPart3);
- QHttpPart imagePart33;
- imagePart33.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
- imagePart33.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"testImage3\""));
- QFile *file33 = new QFile(QFINDTESTDATA("../qnetworkreply/image3.jpg"));
- file33->open(QIODevice::ReadOnly);
- imagePart33.setBodyDevice(file33);
- imageMultiPart3->append(imagePart33);
- file33->setParent(imageMultiPart3);
- QByteArray expectedData = "content type: multipart/form-data; boundary=\""
- + imageMultiPart3->boundary();
- expectedData.append("\"\nkey: testImage1, value: 87ef3bb319b004ba9e5e9c9fa713776e\n"
- "key: testImage2, value: 483761b893f7fb1bd2414344cd1f3dfb\n"
- "key: testImage3, value: ab0eb6fd4fcf8b4436254870b4513033\n");
-
- QTest::newRow("multipart-3images") << multiPartUrl << QByteArray() << QByteArray("POST")
- << static_cast<QObject *>(imageMultiPart3) << expectedData
- << QNetworkProxy();
-}
-
-void tst_Spdy::upload()
-{
- QFETCH(QUrl, url);
- QNetworkRequest request(url);
- request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
-
- QFETCH(QByteArray, data);
- QFETCH(QByteArray, uploadMethod);
- QFETCH(QObject *, uploadObject);
- QFETCH(QNetworkProxy, proxy);
-
- if (proxy.type() != QNetworkProxy::DefaultProxy) {
- m_manager.setProxy(proxy);
- }
-
- QNetworkReply *reply;
- QHttpMultiPart *multiPart = 0;
-
- if (uploadObject) {
- // upload via device
- if (QIODevice *device = qobject_cast<QIODevice *>(uploadObject)) {
- reply = m_manager.post(request, device);
- } else if ((multiPart = qobject_cast<QHttpMultiPart *>(uploadObject))) {
- reply = m_manager.post(request, multiPart);
- } else {
- QFAIL("got unknown upload device");
- }
- } else {
- // upload via byte array
- if (uploadMethod == "PUT") {
- reply = m_manager.put(request, data);
- } else {
- reply = m_manager.post(request, data);
- }
- }
-
- reply->ignoreSslErrors();
- QSignalSpy metaDataChangedSpy(reply, SIGNAL(metaDataChanged()));
- QSignalSpy uploadProgressSpy(reply, SIGNAL(uploadProgress(qint64, qint64)));
- QSignalSpy readyReadSpy(reply, SIGNAL(readyRead()));
- QSignalSpy finishedSpy(reply, SIGNAL(finished()));
-
- QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
- QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
-
- QTestEventLoop::instance().enterLoop(20);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- QCOMPARE(finishedManagerSpy.count(), 1);
- QCOMPARE(metaDataChangedSpy.count(), 1);
- QCOMPARE(finishedSpy.count(), 1);
- QVERIFY(uploadProgressSpy.count() > 0);
- QVERIFY(readyReadSpy.count() > 0);
-
- QCOMPARE(reply->error(), QNetworkReply::NoError);
- QCOMPARE(reply->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), true);
- QCOMPARE(reply->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool(), true);
- QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
-
- qint64 contentLength = reply->header(QNetworkRequest::ContentLengthHeader).toLongLong();
- if (!multiPart) // script to test multiparts does not return a content length
- QCOMPARE(contentLength, 33); // 33 bytes for md5 sums (including new line)
-
- QFETCH(QByteArray, md5sum);
- QByteArray content = reply->readAll();
- QCOMPARE(content, md5sum);
-
- reply->deleteLater();
- if (uploadObject)
- uploadObject->deleteLater();
-
- m_manager.setProxy(QNetworkProxy()); // reset
-}
-
-void tst_Spdy::errors_data()
-{
- QTest::addColumn<QUrl>("url");
- QTest::addColumn<QNetworkProxy>("proxy");
- QTest::addColumn<bool>("ignoreSslErrors");
- QTest::addColumn<int>("expectedReplyError");
-
- QTest::newRow("http-404") << QUrl("https://" + QtNetworkSettings::serverName() + "/non-existent-url")
- << QNetworkProxy() << true << int(QNetworkReply::ContentNotFoundError);
-
- QTest::newRow("ssl-errors") << QUrl("https://" + QtNetworkSettings::serverName())
- << QNetworkProxy() << false << int(QNetworkReply::SslHandshakeFailedError);
-
- QTest::newRow("host-not-found") << QUrl("https://this-host-does-not.exist")
- << QNetworkProxy()
- << true << int(QNetworkReply::HostNotFoundError);
-
- QTest::newRow("proxy-not-found") << QUrl("https://" + QtNetworkSettings::serverName())
- << QNetworkProxy(QNetworkProxy::HttpProxy,
- "https://this-host-does-not.exist", 3128)
- << true << int(QNetworkReply::HostNotFoundError);
-
- QHostInfo hostInfo = QHostInfo::fromName(QtNetworkSettings::serverName());
- QString proxyserver = hostInfo.addresses().first().toString();
-
- QTest::newRow("proxy-unavailable") << QUrl("https://" + QtNetworkSettings::serverName())
- << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 10)
- << true << int(QNetworkReply::UnknownNetworkError);
-
- QTest::newRow("no-proxy-credentials") << QUrl("https://" + QtNetworkSettings::serverName())
- << QNetworkProxy(QNetworkProxy::HttpProxy, proxyserver, 3129)
- << true << int(QNetworkReply::ProxyAuthenticationRequiredError);
-}
-
-void tst_Spdy::errors()
-{
- QFETCH(QUrl, url);
- QFETCH(QNetworkProxy, proxy);
- QFETCH(bool, ignoreSslErrors);
- QFETCH(int, expectedReplyError);
-
- QNetworkRequest request(url);
- request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
-
- disconnect(&m_manager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
- 0, 0);
- if (proxy.type() != QNetworkProxy::DefaultProxy) {
- m_manager.setProxy(proxy);
- }
- QNetworkReply *reply = m_manager.get(request);
- if (ignoreSslErrors)
- reply->ignoreSslErrors();
- QSignalSpy finishedSpy(reply, SIGNAL(finished()));
- QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError)));
-
- QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- QTestEventLoop::instance().enterLoop(15);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- QCOMPARE(finishedSpy.count(), 1);
- QCOMPARE(errorSpy.count(), 1);
-
- QCOMPARE(reply->error(), static_cast<QNetworkReply::NetworkError>(expectedReplyError));
-
- m_manager.setProxy(QNetworkProxy()); // reset
- m_manager.clearAccessCache(); // e.g. to get an SSL error we need a new connection
- connect(&m_manager, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
- this, SLOT(proxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *)),
- Qt::UniqueConnection); // reset
-}
-#endif // !QT_NO_NETWORKPROXY
-
-void tst_Spdy::multipleRequests_data()
-{
- QTest::addColumn<QList<QUrl> >("urls");
-
- QString baseUrl = "https://" + QtNetworkSettings::serverName() + "/qtest/cgi-bin/echo.cgi?";
- QList<QUrl> urls;
- for (int a = 1; a <= 50; ++a)
- urls.append(QUrl(baseUrl + QLatin1String(QByteArray::number(a))));
-
- QTest::newRow("one-request") << urls.mid(0, 1);
- QTest::newRow("two-requests") << urls.mid(0, 2);
- QTest::newRow("ten-requests") << urls.mid(0, 10);
- QTest::newRow("twenty-requests") << urls.mid(0, 20);
- QTest::newRow("fifty-requests") << urls;
-}
-
-void tst_Spdy::multipleRequestsFinishedSlot()
-{
- m_multipleRepliesFinishedCount++;
- if (m_multipleRepliesFinishedCount == m_multipleRequestsCount)
- QTestEventLoop::instance().exitLoop();
-}
-
-void tst_Spdy::multipleRequests()
-{
- QFETCH(QList<QUrl>, urls);
- m_multipleRequestsCount = urls.count();
- m_multipleRepliesFinishedCount = 0;
-
- QList<QNetworkReply *> replies;
- QList<QSignalSpy *> metaDataChangedSpies;
- QList<QSignalSpy *> readyReadSpies;
- QList<QSignalSpy *> finishedSpies;
-
- foreach (const QUrl &url, urls) {
- QNetworkRequest request(url);
- request.setAttribute(QNetworkRequest::SpdyAllowedAttribute, true);
- QNetworkReply *reply = m_manager.get(request);
- replies.append(reply);
- reply->ignoreSslErrors();
- QObject::connect(reply, SIGNAL(finished()), this, SLOT(multipleRequestsFinishedSlot()));
- QSignalSpy *metaDataChangedSpy = new QSignalSpy(reply, SIGNAL(metaDataChanged()));
- metaDataChangedSpies << metaDataChangedSpy;
- QSignalSpy *readyReadSpy = new QSignalSpy(reply, SIGNAL(readyRead()));
- readyReadSpies << readyReadSpy;
- QSignalSpy *finishedSpy = new QSignalSpy(reply, SIGNAL(finished()));
- finishedSpies << finishedSpy;
- }
-
- QSignalSpy finishedManagerSpy(&m_manager, SIGNAL(finished(QNetworkReply*)));
-
- QTestEventLoop::instance().enterLoop(15);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- QCOMPARE(finishedManagerSpy.count(), m_multipleRequestsCount);
-
- for (int a = 0; a < replies.count(); ++a) {
-
-#ifndef QT_NO_OPENSSL
- QCOMPARE(replies.at(a)->sslConfiguration().nextProtocolNegotiationStatus(),
- QSslConfiguration::NextProtocolNegotiationNegotiated);
- QCOMPARE(replies.at(a)->sslConfiguration().nextNegotiatedProtocol(),
- QByteArray(QSslConfiguration::NextProtocolSpdy3_0));
-#endif // QT_NO_OPENSSL
-
- QCOMPARE(replies.at(a)->error(), QNetworkReply::NoError);
- QCOMPARE(replies.at(a)->attribute(QNetworkRequest::SpdyWasUsedAttribute).toBool(), true);
- QCOMPARE(replies.at(a)->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool(), true);
- QCOMPARE(replies.at(a)->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
-
- // using the echo script, a request to "echo.cgi?1" will return a body of "1"
- QByteArray expectedContent = replies.at(a)->url().query().toUtf8();
- QByteArray content = replies.at(a)->readAll();
- QCOMPARE(expectedContent, content);
-
- QCOMPARE(metaDataChangedSpies.at(a)->count(), 1);
- metaDataChangedSpies.at(a)->deleteLater();
-
- QCOMPARE(finishedSpies.at(a)->count(), 1);
- finishedSpies.at(a)->deleteLater();
-
- QVERIFY(readyReadSpies.at(a)->count() > 0);
- readyReadSpies.at(a)->deleteLater();
-
- replies.at(a)->deleteLater();
- }
-}
-
-QTEST_MAIN(tst_Spdy)
-
-#include "tst_spdy.moc"
diff --git a/tests/auto/network/bearer/CMakeLists.txt b/tests/auto/network/bearer/CMakeLists.txt
new file mode 100644
index 0000000000..4b593aab0a
--- /dev/null
+++ b/tests/auto/network/bearer/CMakeLists.txt
@@ -0,0 +1,6 @@
+# Generated from bearer.pro.
+
+add_subdirectory(qnetworkconfiguration)
+add_subdirectory(qnetworkconfigurationmanager)
+add_subdirectory(qnetworkconfigurationmanagerqappless)
+add_subdirectory(qnetworksession)
diff --git a/tests/auto/network/bearer/qnetworkconfiguration/CMakeLists.txt b/tests/auto/network/bearer/qnetworkconfiguration/CMakeLists.txt
new file mode 100644
index 0000000000..1db8bb1e6b
--- /dev/null
+++ b/tests/auto/network/bearer/qnetworkconfiguration/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from qnetworkconfiguration.pro.
+
+#####################################################################
+## tst_qnetworkconfiguration Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkconfiguration
+ SOURCES
+ ../qbearertestcommon.h
+ tst_qnetworkconfiguration.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/bearer/qnetworkconfigurationmanager/CMakeLists.txt b/tests/auto/network/bearer/qnetworkconfigurationmanager/CMakeLists.txt
new file mode 100644
index 0000000000..355bd4898a
--- /dev/null
+++ b/tests/auto/network/bearer/qnetworkconfigurationmanager/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from qnetworkconfigurationmanager.pro.
+
+#####################################################################
+## tst_qnetworkconfigurationmanager Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkconfigurationmanager
+ SOURCES
+ ../qbearertestcommon.h
+ tst_qnetworkconfigurationmanager.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/bearer/qnetworkconfigurationmanagerqappless/CMakeLists.txt b/tests/auto/network/bearer/qnetworkconfigurationmanagerqappless/CMakeLists.txt
new file mode 100644
index 0000000000..dcf18785bf
--- /dev/null
+++ b/tests/auto/network/bearer/qnetworkconfigurationmanagerqappless/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from qnetworkconfigurationmanagerqappless.pro.
+
+#####################################################################
+## tst_qnetworkconfigurationmanagerqappless Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkconfigurationmanagerqappless
+ SOURCES
+ ../qbearertestcommon.h
+ tst_qnetworkconfigurationmanagerqappless.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/bearer/qnetworksession/CMakeLists.txt b/tests/auto/network/bearer/qnetworksession/CMakeLists.txt
new file mode 100644
index 0000000000..99c3483e6c
--- /dev/null
+++ b/tests/auto/network/bearer/qnetworksession/CMakeLists.txt
@@ -0,0 +1,7 @@
+# Generated from qnetworksession.pro.
+
+add_subdirectory(test)
+
+if(NOT WINRT)
+ add_subdirectory(lackey)
+endif()
diff --git a/tests/auto/network/bearer/qnetworksession/lackey/CMakeLists.txt b/tests/auto/network/bearer/qnetworksession/lackey/CMakeLists.txt
new file mode 100644
index 0000000000..c2d0d59d57
--- /dev/null
+++ b/tests/auto/network/bearer/qnetworksession/lackey/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from lackey.pro.
+
+#####################################################################
+## lackey Binary:
+#####################################################################
+
+add_qt_executable(lackey
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/bearer/qnetworksession/test/.prev_CMakeLists.txt b/tests/auto/network/bearer/qnetworksession/test/.prev_CMakeLists.txt
new file mode 100644
index 0000000000..e164bccbdf
--- /dev/null
+++ b/tests/auto/network/bearer/qnetworksession/test/.prev_CMakeLists.txt
@@ -0,0 +1,29 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qnetworksession Test:
+#####################################################################
+
+add_qt_test(tst_qnetworksession
+ SOURCES
+ ../../qbearertestcommon.h
+ tst_qnetworksession.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ Qt::NetworkPrivate
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:test.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "../debug"
+
+#### Keys ignored in scope 4:.:.:test.pro:else:
+# DESTDIR = "../release"
+
+#### Keys ignored in scope 5:.:.:test.pro:else:
+# DESTDIR = ".."
+
+#### Keys ignored in scope 6:.:.:test.pro:NOT ANDROID AND NOT WINRT:
+# TEST_HELPER_INSTALLS = "../lackey/lackey"
diff --git a/tests/auto/network/bearer/qnetworksession/test/CMakeLists.txt b/tests/auto/network/bearer/qnetworksession/test/CMakeLists.txt
new file mode 100644
index 0000000000..c86966600d
--- /dev/null
+++ b/tests/auto/network/bearer/qnetworksession/test/CMakeLists.txt
@@ -0,0 +1,30 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qnetworksession Test:
+#####################################################################
+
+add_qt_test(tst_qnetworksession
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../" # special case
+ SOURCES
+ ../../qbearertestcommon.h
+ tst_qnetworksession.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ Qt::NetworkPrivate
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:test.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "../debug"
+
+#### Keys ignored in scope 4:.:.:test.pro:else:
+# DESTDIR = "../release"
+
+#### Keys ignored in scope 5:.:.:test.pro:else:
+# DESTDIR = ".."
+
+#### Keys ignored in scope 6:.:.:test.pro:NOT ANDROID AND NOT WINRT:
+# TEST_HELPER_INSTALLS = "../lackey/lackey"
diff --git a/tests/auto/network/kernel/CMakeLists.txt b/tests/auto/network/kernel/CMakeLists.txt
new file mode 100644
index 0000000000..c1082f60b7
--- /dev/null
+++ b/tests/auto/network/kernel/CMakeLists.txt
@@ -0,0 +1,19 @@
+add_subdirectory(qdnslookup)
+add_subdirectory(qdnslookup_appless)
+add_subdirectory(qnetworkinterface)
+add_subdirectory(qnetworkdatagram)
+add_subdirectory(qnetworkaddressentry)
+add_subdirectory(qhostaddress)
+
+if(NOT WINRT)
+ add_subdirectory(qnetworkproxy)
+ add_subdirectory(qnetworkproxyfactory)
+endif()
+
+if(QT_FEATURE_private_tests)
+ add_subdirectory(qauthenticator)
+
+ if(NOT APPLE_OSX)
+ add_subdirectory(qhostinfo)
+ endif()
+endif()
diff --git a/tests/auto/network/kernel/qauthenticator/CMakeLists.txt b/tests/auto/network/kernel/qauthenticator/CMakeLists.txt
new file mode 100644
index 0000000000..f461591884
--- /dev/null
+++ b/tests/auto/network/kernel/qauthenticator/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from qauthenticator.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qauthenticator Test:
+#####################################################################
+
+add_qt_test(tst_qauthenticator
+ SOURCES
+ tst_qauthenticator.cpp
+ DEFINES
+ SRCDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/\\\"
+ PUBLIC_LIBRARIES
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qauthenticator.pro:<TRUE>:
+# _REQUIREMENTS = "qtConfig(private_tests)"
diff --git a/tests/auto/network/kernel/qdnslookup/CMakeLists.txt b/tests/auto/network/kernel/qdnslookup/CMakeLists.txt
new file mode 100644
index 0000000000..896b4431d8
--- /dev/null
+++ b/tests/auto/network/kernel/qdnslookup/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qdnslookup.pro.
+
+#####################################################################
+## tst_qdnslookup Test:
+#####################################################################
+
+add_qt_test(tst_qdnslookup
+ SOURCES
+ tst_qdnslookup.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/kernel/qdnslookup_appless/CMakeLists.txt b/tests/auto/network/kernel/qdnslookup_appless/CMakeLists.txt
new file mode 100644
index 0000000000..847e1a6d90
--- /dev/null
+++ b/tests/auto/network/kernel/qdnslookup_appless/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qdnslookup_appless.pro.
+
+#####################################################################
+## tst_qdnslookup_appless Test:
+#####################################################################
+
+add_qt_test(tst_qdnslookup_appless
+ SOURCES
+ tst_qdnslookup_appless.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/kernel/qhostaddress/CMakeLists.txt b/tests/auto/network/kernel/qhostaddress/CMakeLists.txt
new file mode 100644
index 0000000000..f967625d38
--- /dev/null
+++ b/tests/auto/network/kernel/qhostaddress/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from qhostaddress.pro.
+
+#####################################################################
+## tst_qhostaddress Test:
+#####################################################################
+
+add_qt_test(tst_qhostaddress
+ SOURCES
+ tst_qhostaddress.cpp
+ PUBLIC_LIBRARIES
+ Qt::NetworkPrivate
+)
+
+## Scopes:
+#####################################################################
+
+extend_target(tst_qhostaddress CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
diff --git a/tests/auto/network/kernel/qhostinfo/CMakeLists.txt b/tests/auto/network/kernel/qhostinfo/CMakeLists.txt
new file mode 100644
index 0000000000..19eae0611d
--- /dev/null
+++ b/tests/auto/network/kernel/qhostinfo/CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from qhostinfo.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qhostinfo Test:
+#####################################################################
+
+add_qt_test(tst_qhostinfo
+ SOURCES
+ tst_qhostinfo.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qhostinfo.pro:<TRUE>:
+# _REQUIREMENTS = "qtConfig(private_tests)"
+
+## Scopes:
+#####################################################################
+
+extend_target(tst_qhostinfo CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
+
+#### Keys ignored in scope 3:.:.:qhostinfo.pro:WINRT:
+# WINRT_MANIFEST.capabilities = "internetClientServer"
diff --git a/tests/auto/network/kernel/qnetworkaddressentry/CMakeLists.txt b/tests/auto/network/kernel/qnetworkaddressentry/CMakeLists.txt
new file mode 100644
index 0000000000..5a72d4e4a5
--- /dev/null
+++ b/tests/auto/network/kernel/qnetworkaddressentry/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkaddressentry.pro.
+
+#####################################################################
+## tst_qnetworkaddressentry Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkaddressentry
+ SOURCES
+ tst_qnetworkaddressentry.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/kernel/qnetworkdatagram/CMakeLists.txt b/tests/auto/network/kernel/qnetworkdatagram/CMakeLists.txt
new file mode 100644
index 0000000000..ae24d32917
--- /dev/null
+++ b/tests/auto/network/kernel/qnetworkdatagram/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkdatagram.pro.
+
+#####################################################################
+## tst_qnetworkdatagram Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkdatagram
+ SOURCES
+ tst_qnetworkdatagram.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/kernel/qnetworkinterface/CMakeLists.txt b/tests/auto/network/kernel/qnetworkinterface/CMakeLists.txt
new file mode 100644
index 0000000000..f23a17f077
--- /dev/null
+++ b/tests/auto/network/kernel/qnetworkinterface/CMakeLists.txt
@@ -0,0 +1,15 @@
+# Generated from qnetworkinterface.pro.
+
+#####################################################################
+## tst_qnetworkinterface Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkinterface
+ SOURCES
+ ../../../../shared/emulationdetector.h
+ tst_qnetworkinterface.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../shared
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/kernel/qnetworkproxy/CMakeLists.txt b/tests/auto/network/kernel/qnetworkproxy/CMakeLists.txt
new file mode 100644
index 0000000000..e0cbe133af
--- /dev/null
+++ b/tests/auto/network/kernel/qnetworkproxy/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkproxy.pro.
+
+#####################################################################
+## tst_qnetworkproxy Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkproxy
+ SOURCES
+ tst_qnetworkproxy.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/kernel/qnetworkproxyfactory/CMakeLists.txt b/tests/auto/network/kernel/qnetworkproxyfactory/CMakeLists.txt
new file mode 100644
index 0000000000..ecacd338ab
--- /dev/null
+++ b/tests/auto/network/kernel/qnetworkproxyfactory/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qnetworkproxyfactory.pro.
+
+#####################################################################
+## tst_qnetworkproxyfactory Test:
+#####################################################################
+
+add_qt_test(tst_qnetworkproxyfactory
+ SOURCES
+ tst_qnetworkproxyfactory.cpp
+ PUBLIC_LIBRARIES
+ Qt::NetworkPrivate
+)
diff --git a/tests/auto/network/socket/CMakeLists.txt b/tests/auto/network/socket/CMakeLists.txt
new file mode 100644
index 0000000000..5019e47140
--- /dev/null
+++ b/tests/auto/network/socket/CMakeLists.txt
@@ -0,0 +1,20 @@
+# Generated from socket.pro.
+
+add_subdirectory(qudpsocket)
+### add_subdirectory(qlocalsocket)
+add_subdirectory(qtcpserver)
+add_subdirectory(qabstractsocket)
+
+if(QT_FEATURE_private_tests)
+ add_subdirectory(platformsocketengine)
+ add_subdirectory(qtcpsocket)
+
+ if(NOT WINRT)
+ add_subdirectory(qhttpsocketengine)
+ add_subdirectory(qsocks5socketengine)
+ endif()
+endif()
+
+if(QT_FEATURE_sctp)
+ add_subdirectory(qsctpsocket)
+endif()
diff --git a/tests/auto/network/socket/platformsocketengine/CMakeLists.txt b/tests/auto/network/socket/platformsocketengine/CMakeLists.txt
new file mode 100644
index 0000000000..1dece78966
--- /dev/null
+++ b/tests/auto/network/socket/platformsocketengine/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from platformsocketengine.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_platformsocketengine Test:
+#####################################################################
+
+add_qt_test(tst_platformsocketengine
+ SOURCES
+ tst_platformsocketengine.cpp
+ INCLUDE_DIRECTORIES
+ ${QT_SOURCE_TREE}/src/network
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:platformsocketengine.pro:<TRUE>:
+# MOC_DIR = "tmp"
+# _REQUIREMENTS = "qtConfig(private_tests)"
+
+## Scopes:
+#####################################################################
+
+extend_target(tst_platformsocketengine CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
+
+extend_target(tst_platformsocketengine CONDITION QT_FEATURE_reduce_exports AND UNIX
+ SOURCES
+ ${QT_SOURCE_TREE}/src/network/socket/qabstractsocketengine.cpp ${QT_SOURCE_TREE}/src/network/socket/qabstractsocketengine_p.h
+ ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine.cpp ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine_p.h
+ ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine_unix.cpp
+)
diff --git a/tests/auto/network/socket/platformsocketengine/platformsocketengine.pri b/tests/auto/network/socket/platformsocketengine/platformsocketengine.pri
index 868439de6a..df43a60065 100644
--- a/tests/auto/network/socket/platformsocketengine/platformsocketengine.pri
+++ b/tests/auto/network/socket/platformsocketengine/platformsocketengine.pri
@@ -9,5 +9,7 @@ win32: QMAKE_USE += ws2_32
unix:qtConfig(reduce_exports) {
SOURCES += $$QNETWORK_SRC/socket/qnativesocketengine_unix.cpp
SOURCES += $$QNETWORK_SRC/socket/qnativesocketengine.cpp
+ HEADERS += $$QNETWORK_SRC/socket/qnativesocketengine_p.h
SOURCES += $$QNETWORK_SRC/socket/qabstractsocketengine.cpp
+ HEADERS += $$QNETWORK_SRC/socket/qabstractsocketengine_p.h
}
diff --git a/tests/auto/network/socket/qabstractsocket/CMakeLists.txt b/tests/auto/network/socket/qabstractsocket/CMakeLists.txt
new file mode 100644
index 0000000000..ca7d64a2ff
--- /dev/null
+++ b/tests/auto/network/socket/qabstractsocket/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qabstractsocket.pro.
+
+#####################################################################
+## tst_qabstractsocket Test:
+#####################################################################
+
+add_qt_test(tst_qabstractsocket
+ SOURCES
+ tst_qabstractsocket.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/socket/qhttpsocketengine/CMakeLists.txt b/tests/auto/network/socket/qhttpsocketengine/CMakeLists.txt
new file mode 100644
index 0000000000..6aeec0a983
--- /dev/null
+++ b/tests/auto/network/socket/qhttpsocketengine/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Generated from qhttpsocketengine.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qhttpsocketengine Test:
+#####################################################################
+
+add_qt_test(tst_qhttpsocketengine
+ SOURCES
+ tst_qhttpsocketengine.cpp
+ INCLUDE_DIRECTORIES
+ ${QT_SOURCE_TREE}/src/network
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qhttpsocketengine.pro:<TRUE>:
+# MOC_DIR = "tmp"
+# _REQUIREMENTS = "qtConfig(private_tests)"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 2:.:.:qhttpsocketengine.pro:LINUX:
+# QT_TEST_SERVER_LIST = "squid" "danted" "cyrus" "apache2"
+
+extend_target(tst_qhttpsocketengine CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
+
+extend_target(tst_qhttpsocketengine CONDITION QT_FEATURE_reduce_exports AND UNIX
+ SOURCES
+ ${QT_SOURCE_TREE}/src/network/socket/qabstractsocketengine.cpp ${QT_SOURCE_TREE}/src/network/socket/qabstractsocketengine_p.h
+ ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine.cpp ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine_p.h
+ ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine_unix.cpp
+)
diff --git a/tests/auto/network/socket/qlocalsocket/CMakeLists.txt b/tests/auto/network/socket/qlocalsocket/CMakeLists.txt
new file mode 100644
index 0000000000..97466174f9
--- /dev/null
+++ b/tests/auto/network/socket/qlocalsocket/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from qlocalsocket.pro.
+
+add_subdirectory(test)
+add_subdirectory(socketprocess)
diff --git a/tests/auto/network/socket/qlocalsocket/socketprocess/CMakeLists.txt b/tests/auto/network/socket/qlocalsocket/socketprocess/CMakeLists.txt
new file mode 100644
index 0000000000..cb339eb2fa
--- /dev/null
+++ b/tests/auto/network/socket/qlocalsocket/socketprocess/CMakeLists.txt
@@ -0,0 +1,14 @@
+# Generated from socketprocess.pro.
+
+#####################################################################
+## socketprocess Binary:
+#####################################################################
+
+add_qt_executable(socketprocess
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ Qt::Test
+)
diff --git a/tests/auto/network/socket/qlocalsocket/test/CMakeLists.txt b/tests/auto/network/socket/qlocalsocket/test/CMakeLists.txt
new file mode 100644
index 0000000000..eb427796ae
--- /dev/null
+++ b/tests/auto/network/socket/qlocalsocket/test/CMakeLists.txt
@@ -0,0 +1,28 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qlocalsocket Test:
+#####################################################################
+
+add_qt_test(tst_qlocalsocket
+ SOURCES
+ ../tst_qlocalsocket.cpp
+ DEFINES
+ QLOCALSERVER_DEBUG
+ QLOCALSOCKET_DEBUG
+ SRCDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/../\\\"
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:test.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "../debug"
+
+#### Keys ignored in scope 4:.:.:test.pro:else:
+# DESTDIR = "../release"
+
+#### Keys ignored in scope 5:.:.:test.pro:else:
+# DESTDIR = ".."
diff --git a/tests/auto/network/socket/qsctpsocket/CMakeLists.txt b/tests/auto/network/socket/qsctpsocket/CMakeLists.txt
new file mode 100644
index 0000000000..d272d018b6
--- /dev/null
+++ b/tests/auto/network/socket/qsctpsocket/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qsctpsocket.pro.
+
+#####################################################################
+## tst_qsctpsocket Test:
+#####################################################################
+
+add_qt_test(tst_qsctpsocket
+ SOURCES
+ tst_qsctpsocket.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/socket/qsocks5socketengine/CMakeLists.txt b/tests/auto/network/socket/qsocks5socketengine/CMakeLists.txt
new file mode 100644
index 0000000000..fd58b931e6
--- /dev/null
+++ b/tests/auto/network/socket/qsocks5socketengine/CMakeLists.txt
@@ -0,0 +1,41 @@
+# Generated from qsocks5socketengine.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qsocks5socketengine Test:
+#####################################################################
+
+add_qt_test(tst_qsocks5socketengine
+ SOURCES
+ tst_qsocks5socketengine.cpp
+ INCLUDE_DIRECTORIES
+ ${QT_SOURCE_TREE}/src/network
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qsocks5socketengine.pro:<TRUE>:
+# MOC_DIR = "tmp"
+# _REQUIREMENTS = "qtConfig(private_tests)"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 2:.:.:qsocks5socketengine.pro:LINUX:
+# QT_TEST_SERVER_LIST = "danted" "apache2" "cyrus"
+
+extend_target(tst_qsocks5socketengine CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
+
+extend_target(tst_qsocks5socketengine CONDITION QT_FEATURE_reduce_exports AND UNIX
+ SOURCES
+ ${QT_SOURCE_TREE}/src/network/socket/qabstractsocketengine.cpp ${QT_SOURCE_TREE}/src/network/socket/qabstractsocketengine_p.h
+ ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine.cpp ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine_p.h
+ ${QT_SOURCE_TREE}/src/network/socket/qnativesocketengine_unix.cpp
+)
diff --git a/tests/auto/network/socket/qtcpserver/CMakeLists.txt b/tests/auto/network/socket/qtcpserver/CMakeLists.txt
new file mode 100644
index 0000000000..01f6c8b672
--- /dev/null
+++ b/tests/auto/network/socket/qtcpserver/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from qtcpserver.pro.
+
+add_subdirectory(test)
+add_subdirectory(crashingServer)
diff --git a/tests/auto/network/socket/qtcpserver/crashingServer/CMakeLists.txt b/tests/auto/network/socket/qtcpserver/crashingServer/CMakeLists.txt
new file mode 100644
index 0000000000..ad291f2ad8
--- /dev/null
+++ b/tests/auto/network/socket/qtcpserver/crashingServer/CMakeLists.txt
@@ -0,0 +1,16 @@
+# Generated from crashingServer.pro.
+
+#####################################################################
+## crashingServer Binary:
+#####################################################################
+
+add_qt_executable(crashingServer
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
+
+## Scopes:
+#####################################################################
diff --git a/tests/auto/network/socket/qtcpserver/test/CMakeLists.txt b/tests/auto/network/socket/qtcpserver/test/CMakeLists.txt
new file mode 100644
index 0000000000..b559024724
--- /dev/null
+++ b/tests/auto/network/socket/qtcpserver/test/CMakeLists.txt
@@ -0,0 +1,27 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qtcpserver Test:
+#####################################################################
+
+add_qt_test(tst_qtcpserver
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../" # special case
+ SOURCES
+ ../tst_qtcpserver.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
+
+#### Keys ignored in scope 1:.:.:test.pro:<TRUE>:
+# MOC_DIR = "tmp"
+
+## Scopes:
+#####################################################################
+
+extend_target(tst_qtcpserver CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
+
+#### Keys ignored in scope 6:.:.:test.pro:LINUX:
+# QT_TEST_SERVER_LIST = "danted" "cyrus" "squid" "ftp-proxy"
diff --git a/tests/auto/network/socket/qtcpserver/test/test.pro b/tests/auto/network/socket/qtcpserver/test/test.pro
index 7e2e60a1e3..491ff28cdc 100644
--- a/tests/auto/network/socket/qtcpserver/test/test.pro
+++ b/tests/auto/network/socket/qtcpserver/test/test.pro
@@ -3,13 +3,13 @@ SOURCES += ../tst_qtcpserver.cpp
win32: QMAKE_USE += ws2_32
-TARGET = ../tst_qtcpserver
+TARGET = tst_qtcpserver
win32 {
CONFIG(debug, debug|release) {
- TARGET = ../../debug/tst_qtcpserver
+ TARGET = ../debug/tst_qtcpserver
} else {
- TARGET = ../../release/tst_qtcpserver
+ TARGET = ../release/tst_qtcpserver
}
}
diff --git a/tests/auto/network/socket/qtcpsocket/CMakeLists.txt b/tests/auto/network/socket/qtcpsocket/CMakeLists.txt
new file mode 100644
index 0000000000..b3ad79cba9
--- /dev/null
+++ b/tests/auto/network/socket/qtcpsocket/CMakeLists.txt
@@ -0,0 +1,7 @@
+# Generated from qtcpsocket.pro.
+
+add_subdirectory(test)
+
+if(NOT VXWORKS)
+ add_subdirectory(stressTest)
+endif()
diff --git a/tests/auto/network/socket/qtcpsocket/stressTest/CMakeLists.txt b/tests/auto/network/socket/qtcpsocket/stressTest/CMakeLists.txt
new file mode 100644
index 0000000000..da9d3a324f
--- /dev/null
+++ b/tests/auto/network/socket/qtcpsocket/stressTest/CMakeLists.txt
@@ -0,0 +1,19 @@
+# Generated from stressTest.pro.
+
+#####################################################################
+## stressTest Binary:
+#####################################################################
+
+add_qt_executable(stressTest
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
+ SOURCES
+ Test.cpp Test.h
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ Qt::Test
+)
+
+#### Keys ignored in scope 1:.:.:stressTest.pro:<TRUE>:
+# MOC_DIR = ".moc/"
+# TMP_DIR = ".tmp/"
diff --git a/tests/auto/network/socket/qtcpsocket/test/.prev_CMakeLists.txt b/tests/auto/network/socket/qtcpsocket/test/.prev_CMakeLists.txt
new file mode 100644
index 0000000000..61b8d25736
--- /dev/null
+++ b/tests/auto/network/socket/qtcpsocket/test/.prev_CMakeLists.txt
@@ -0,0 +1,33 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qtcpsocket Test:
+#####################################################################
+
+add_qt_test(tst_qtcpsocket
+ SOURCES
+ ../tst_qtcpsocket.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+## Scopes:
+#####################################################################
+
+extend_target(tst_qtcpsocket CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
+
+#### Keys ignored in scope 4:.:.:test.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "../debug"
+
+#### Keys ignored in scope 5:.:.:test.pro:else:
+# DESTDIR = "../release"
+
+#### Keys ignored in scope 6:.:.:test.pro:else:
+# DESTDIR = "../"
+
+#### Keys ignored in scope 7:.:.:test.pro:LINUX:
+# QT_TEST_SERVER_LIST = "danted" "squid" "apache2" "ftp-proxy" "vsftpd" "iptables" "cyrus"
diff --git a/tests/auto/network/socket/qtcpsocket/test/CMakeLists.txt b/tests/auto/network/socket/qtcpsocket/test/CMakeLists.txt
new file mode 100644
index 0000000000..57fafe7a04
--- /dev/null
+++ b/tests/auto/network/socket/qtcpsocket/test/CMakeLists.txt
@@ -0,0 +1,39 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qtcpsocket Test:
+#####################################################################
+
+add_qt_test(tst_qtcpsocket
+ SOURCES
+ ../tst_qtcpsocket.cpp
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+## Scopes:
+#####################################################################
+
+extend_target(tst_qtcpsocket CONDITION WIN32
+ PUBLIC_LIBRARIES
+ ws2_32
+)
+
+# special case begin
+set(THREADS_PREFER_PTHREAD_FLAG 1)
+find_package(Threads)
+target_link_libraries(tst_qtcpsocket PRIVATE Threads::Threads)
+# special case end
+
+#### Keys ignored in scope 4:.:.:test.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "../debug"
+
+#### Keys ignored in scope 5:.:.:test.pro:else:
+# DESTDIR = "../release"
+
+#### Keys ignored in scope 6:.:.:test.pro:else:
+# DESTDIR = "../"
+
+#### Keys ignored in scope 7:.:.:test.pro:LINUX:
+# QT_TEST_SERVER_LIST = "danted" "squid" "apache2" "ftp-proxy" "vsftpd" "iptables" "cyrus"
diff --git a/tests/auto/network/socket/qudpsocket/CMakeLists.txt b/tests/auto/network/socket/qudpsocket/CMakeLists.txt
new file mode 100644
index 0000000000..b9d0646e58
--- /dev/null
+++ b/tests/auto/network/socket/qudpsocket/CMakeLists.txt
@@ -0,0 +1,4 @@
+# Generated from qudpsocket.pro.
+
+add_subdirectory(test)
+add_subdirectory(clientserver)
diff --git a/tests/auto/network/socket/qudpsocket/clientserver/CMakeLists.txt b/tests/auto/network/socket/qudpsocket/clientserver/CMakeLists.txt
new file mode 100644
index 0000000000..8b594c6913
--- /dev/null
+++ b/tests/auto/network/socket/qudpsocket/clientserver/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from clientserver.pro.
+
+#####################################################################
+## clientserver Binary:
+#####################################################################
+
+add_qt_executable(clientserver
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/"
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/socket/qudpsocket/test/CMakeLists.txt b/tests/auto/network/socket/qudpsocket/test/CMakeLists.txt
new file mode 100644
index 0000000000..3c2df284fc
--- /dev/null
+++ b/tests/auto/network/socket/qudpsocket/test/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Generated from test.pro.
+
+#####################################################################
+## tst_qudpsocket Test:
+#####################################################################
+
+add_qt_test(tst_qudpsocket
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../" # special case
+ SOURCES
+ ../tst_qudpsocket.cpp
+ INCLUDE_DIRECTORIES
+ ../../../../../shared
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
+
+#### Keys ignored in scope 1:.:.:test.pro:<TRUE>:
+# MOC_DIR = "tmp"
+# testcase.timeout = "800"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:test.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "../debug"
+
+#### Keys ignored in scope 4:.:.:test.pro:else:
+# DESTDIR = "../release"
+
+#### Keys ignored in scope 5:.:.:test.pro:else:
+# DESTDIR = "../"
+
+#### Keys ignored in scope 6:.:.:test.pro:LINUX:
+# QT_TEST_SERVER_LIST = "danted" "echo"
diff --git a/tests/auto/network/socket/qudpsocket/udpServer/.prev_CMakeLists.txt b/tests/auto/network/socket/qudpsocket/udpServer/.prev_CMakeLists.txt
new file mode 100644
index 0000000000..be9819466f
--- /dev/null
+++ b/tests/auto/network/socket/qudpsocket/udpServer/.prev_CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from udpServer.pro.
+
+#####################################################################
+## udpServer Binary:
+#####################################################################
+
+add_qt_executable(udpServer
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/socket/qudpsocket/udpServer/CMakeLists.txt b/tests/auto/network/socket/qudpsocket/udpServer/CMakeLists.txt
new file mode 100644
index 0000000000..d9da87126f
--- /dev/null
+++ b/tests/auto/network/socket/qudpsocket/udpServer/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from udpServer.pro.
+
+#####################################################################
+## udpServer Binary:
+#####################################################################
+
+add_qt_executable(udpServer
+ OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/./" # special case
+ SOURCES
+ main.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/ssl/CMakeLists.txt b/tests/auto/network/ssl/CMakeLists.txt
new file mode 100644
index 0000000000..c10cfabbf4
--- /dev/null
+++ b/tests/auto/network/ssl/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated from ssl.pro.
+
+add_subdirectory(qpassworddigestor)
+add_subdirectory(qsslcertificate)
+add_subdirectory(qsslcipher)
+add_subdirectory(qsslellipticcurve)
+add_subdirectory(qsslerror)
+add_subdirectory(qsslkey)
+
+if(QT_FEATURE_ssl)
+
+ if(QT_FEATURE_private_tests)
+ add_subdirectory(qsslsocket)
+ if(NOT WINRT)
+ add_subdirectory(qsslsocket_onDemandCertificates_member)
+ add_subdirectory(qsslsocket_onDemandCertificates_static)
+ endif()
+
+ if(QT_FEATURE_dtls)
+ add_subdirectory(qdtlscookie)
+ add_subdirectory(qdtls)
+ endif()
+
+ if(QT_FEATURE_ocsp)
+ add_subdirectory(qocsp)
+ endif()
+ endif()
+endif()
+
+if(QT_FEATURE_ssl)
+
+ if(QT_FEATURE_private_tests)
+ add_subdirectory(qasn1element)
+ add_subdirectory(qssldiffiehellmanparameters)
+ endif()
+endif()
diff --git a/tests/auto/network/ssl/qasn1element/CMakeLists.txt b/tests/auto/network/ssl/qasn1element/CMakeLists.txt
new file mode 100644
index 0000000000..aa9ff58012
--- /dev/null
+++ b/tests/auto/network/ssl/qasn1element/CMakeLists.txt
@@ -0,0 +1,13 @@
+# Generated from qasn1element.pro.
+
+#####################################################################
+## tst_qasn1element Test:
+#####################################################################
+
+add_qt_test(tst_qasn1element
+ SOURCES
+ tst_qasn1element.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ Qt::NetworkPrivate
+)
diff --git a/tests/auto/network/ssl/qdtls/CMakeLists.txt b/tests/auto/network/ssl/qdtls/CMakeLists.txt
new file mode 100644
index 0000000000..77bf65f199
--- /dev/null
+++ b/tests/auto/network/ssl/qdtls/CMakeLists.txt
@@ -0,0 +1,25 @@
+# Generated from qdtls.pro.
+
+#####################################################################
+## tst_qdtls Test:
+#####################################################################
+
+# Collect test data
+list(APPEND test_data "certs")
+
+add_qt_test(tst_qdtls
+ SOURCES
+ tst_qdtls.cpp
+ PUBLIC_LIBRARIES
+ Qt::NetworkPrivate
+ TESTDATA ${test_data}
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qdtls.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qdtls.pro:else:
+# DESTDIR = "release"
diff --git a/tests/auto/network/ssl/qdtls/tst_qdtls.cpp b/tests/auto/network/ssl/qdtls/tst_qdtls.cpp
index 5d79b0f26b..3bbde484ce 100644
--- a/tests/auto/network/ssl/qdtls/tst_qdtls.cpp
+++ b/tests/auto/network/ssl/qdtls/tst_qdtls.cpp
@@ -162,7 +162,6 @@ Q_DECLARE_METATYPE(QSslSocket::SslMode)
Q_DECLARE_METATYPE(QSslSocket::PeerVerifyMode)
Q_DECLARE_METATYPE(QList<QSslCertificate>)
Q_DECLARE_METATYPE(QSslKey)
-Q_DECLARE_METATYPE(QVector<QSslError>)
QT_BEGIN_NAMESPACE
diff --git a/tests/auto/network/ssl/qdtlscookie/CMakeLists.txt b/tests/auto/network/ssl/qdtlscookie/CMakeLists.txt
new file mode 100644
index 0000000000..827716c3b7
--- /dev/null
+++ b/tests/auto/network/ssl/qdtlscookie/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from qdtlscookie.pro.
+
+#####################################################################
+## tst_qdtlscookie Test:
+#####################################################################
+
+add_qt_test(tst_qdtlscookie
+ SOURCES
+ tst_qdtlscookie.cpp
+ PUBLIC_LIBRARIES
+ Qt::NetworkPrivate
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qdtlscookie.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qdtlscookie.pro:else:
+# DESTDIR = "release"
diff --git a/tests/auto/network/ssl/qocsp/CMakeLists.txt b/tests/auto/network/ssl/qocsp/CMakeLists.txt
new file mode 100644
index 0000000000..399711f9a0
--- /dev/null
+++ b/tests/auto/network/ssl/qocsp/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Generated from qocsp.pro.
+
+#####################################################################
+## tst_qocsp Test:
+#####################################################################
+
+add_qt_test(tst_qocsp
+ SOURCES
+ tst_qocsp.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ Qt::NetworkPrivate
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qocsp.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qocsp.pro:else:
+# DESTDIR = "release"
diff --git a/tests/auto/network/ssl/qocsp/tst_qocsp.cpp b/tests/auto/network/ssl/qocsp/tst_qocsp.cpp
index edd1c24547..27476f451e 100644
--- a/tests/auto/network/ssl/qocsp/tst_qocsp.cpp
+++ b/tests/auto/network/ssl/qocsp/tst_qocsp.cpp
@@ -60,7 +60,6 @@ using VectorOfErrors = QT_PREPEND_NAMESPACE(QVector<SslError>);
using Latin1String = QT_PREPEND_NAMESPACE(QLatin1String);
Q_DECLARE_METATYPE(SslError)
-Q_DECLARE_METATYPE(VectorOfErrors)
Q_DECLARE_METATYPE(Latin1String)
QT_BEGIN_NAMESPACE
diff --git a/tests/auto/network/ssl/qpassworddigestor/CMakeLists.txt b/tests/auto/network/ssl/qpassworddigestor/CMakeLists.txt
new file mode 100644
index 0000000000..e0997fc26e
--- /dev/null
+++ b/tests/auto/network/ssl/qpassworddigestor/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qpassworddigestor.pro.
+
+#####################################################################
+## tst_qpassworddigestor Test:
+#####################################################################
+
+add_qt_test(tst_qpassworddigestor
+ SOURCES
+ tst_qpassworddigestor.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/ssl/qsslcertificate/.prev_CMakeLists.txt b/tests/auto/network/ssl/qsslcertificate/.prev_CMakeLists.txt
new file mode 100644
index 0000000000..1509c2e809
--- /dev/null
+++ b/tests/auto/network/ssl/qsslcertificate/.prev_CMakeLists.txt
@@ -0,0 +1,31 @@
+# Generated from qsslcertificate.pro.
+
+#####################################################################
+## tst_qsslcertificate Test:
+#####################################################################
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ certificates/*)
+list(APPEND test_data ${test_data_glob})
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ more-certificates/*)
+list(APPEND test_data ${test_data_glob})
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ verify-certs/*)
+list(APPEND test_data ${test_data_glob})
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ pkcs12/*)
+list(APPEND test_data ${test_data_glob})
+
+add_qt_test(tst_qsslcertificate
+ SOURCES
+ tst_qsslcertificate.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ TESTDATA ${test_data}
+)
diff --git a/tests/auto/network/ssl/qsslcertificate/CMakeLists.txt b/tests/auto/network/ssl/qsslcertificate/CMakeLists.txt
new file mode 100644
index 0000000000..4b8fefc499
--- /dev/null
+++ b/tests/auto/network/ssl/qsslcertificate/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from qsslcertificate.pro.
+
+#####################################################################
+## tst_qsslcertificate Test:
+#####################################################################
+
+# special case begin
+# This test requires private tests to properly build
+if (NOT QT_FEATURE_private_tests)
+ return()
+endif()
+# special case end
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ certificates/*)
+list(APPEND test_data ${test_data_glob})
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ more-certificates/*)
+list(APPEND test_data ${test_data_glob})
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ verify-certs/*)
+list(APPEND test_data ${test_data_glob})
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ pkcs12/*)
+list(APPEND test_data ${test_data_glob})
+
+add_qt_test(tst_qsslcertificate
+ SOURCES
+ tst_qsslcertificate.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ TESTDATA ${test_data}
+)
diff --git a/tests/auto/network/ssl/qsslcipher/CMakeLists.txt b/tests/auto/network/ssl/qsslcipher/CMakeLists.txt
new file mode 100644
index 0000000000..44e0e78220
--- /dev/null
+++ b/tests/auto/network/ssl/qsslcipher/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from qsslcipher.pro.
+
+#####################################################################
+## tst_qsslcipher Test:
+#####################################################################
+
+add_qt_test(tst_qsslcipher
+ SOURCES
+ tst_qsslcipher.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qsslcipher.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qsslcipher.pro:else:
+# DESTDIR = "release"
diff --git a/tests/auto/network/ssl/qssldiffiehellmanparameters/CMakeLists.txt b/tests/auto/network/ssl/qssldiffiehellmanparameters/CMakeLists.txt
new file mode 100644
index 0000000000..f6785a6736
--- /dev/null
+++ b/tests/auto/network/ssl/qssldiffiehellmanparameters/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qssldiffiehellmanparameters.pro.
+
+#####################################################################
+## tst_qssldiffiehellmanparameters Test:
+#####################################################################
+
+add_qt_test(tst_qssldiffiehellmanparameters
+ SOURCES
+ tst_qssldiffiehellmanparameters.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/ssl/qsslellipticcurve/CMakeLists.txt b/tests/auto/network/ssl/qsslellipticcurve/CMakeLists.txt
new file mode 100644
index 0000000000..4df88ff305
--- /dev/null
+++ b/tests/auto/network/ssl/qsslellipticcurve/CMakeLists.txt
@@ -0,0 +1,12 @@
+# Generated from qsslellipticcurve.pro.
+
+#####################################################################
+## tst_qsslellipticcurve Test:
+#####################################################################
+
+add_qt_test(tst_qsslellipticcurve
+ SOURCES
+ tst_qsslellipticcurve.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
diff --git a/tests/auto/network/ssl/qsslerror/CMakeLists.txt b/tests/auto/network/ssl/qsslerror/CMakeLists.txt
new file mode 100644
index 0000000000..e8b07ab049
--- /dev/null
+++ b/tests/auto/network/ssl/qsslerror/CMakeLists.txt
@@ -0,0 +1,21 @@
+# Generated from qsslerror.pro.
+
+#####################################################################
+## tst_qsslerror Test:
+#####################################################################
+
+add_qt_test(tst_qsslerror
+ SOURCES
+ tst_qsslerror.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+)
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qsslerror.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qsslerror.pro:else:
+# DESTDIR = "release"
diff --git a/tests/auto/network/ssl/qsslkey/CMakeLists.txt b/tests/auto/network/ssl/qsslkey/CMakeLists.txt
new file mode 100644
index 0000000000..04634d1997
--- /dev/null
+++ b/tests/auto/network/ssl/qsslkey/CMakeLists.txt
@@ -0,0 +1,32 @@
+# Generated from qsslkey.pro.
+
+#####################################################################
+## tst_qsslkey Test:
+#####################################################################
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ keys/*)
+list(APPEND test_data ${test_data_glob})
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ rsa-*.pem)
+list(APPEND test_data ${test_data_glob})
+
+add_qt_test(tst_qsslkey
+ SOURCES
+ tst_qsslkey.cpp
+ PUBLIC_LIBRARIES
+ Qt::Network
+ TESTDATA ${test_data}
+)
+
+## Scopes:
+#####################################################################
+
+extend_target(tst_qsslkey CONDITION QT_FEATURE_private_tests
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
diff --git a/tests/auto/network/ssl/qsslsocket/CMakeLists.txt b/tests/auto/network/ssl/qsslsocket/CMakeLists.txt
new file mode 100644
index 0000000000..99ec2ad823
--- /dev/null
+++ b/tests/auto/network/ssl/qsslsocket/CMakeLists.txt
@@ -0,0 +1,38 @@
+# Generated from qsslsocket.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qsslsocket Test:
+#####################################################################
+
+# Collect test data
+list(APPEND test_data "certs")
+
+add_qt_test(tst_qsslsocket
+ SOURCES
+ tst_qsslsocket.cpp
+ DEFINES
+ SRCDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/\\\"
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+ TESTDATA ${test_data}
+)
+
+#### Keys ignored in scope 1:.:.:qsslsocket.pro:<TRUE>:
+# _REQUIREMENTS = "qtConfig(private_tests)"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qsslsocket.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qsslsocket.pro:else:
+# DESTDIR = "release"
+
+#### Keys ignored in scope 5:.:.:qsslsocket.pro:LINUX:
+# QT_TEST_SERVER_LIST = "squid" "danted" "cyrus" "apache2" "echo"
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index 23495436eb..c793a6a98b 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -73,7 +73,7 @@ typedef QSharedPointer<QSslSocket> QSslSocketPtr;
#else
#define FLUKE_CERTIFICATE_ERROR QSslError::CertificateUntrusted
#endif
-#endif // QT_NO_SSL
+#endif // QT_NO_OPENSSL
// Detect ALPN (Application-Layer Protocol Negotiation) support
#undef ALPN_SUPPORTED // Undef the variable first to be safe
@@ -259,10 +259,14 @@ private slots:
void signatureAlgorithm();
#endif
- void disabledProtocols_data();
- void disabledProtocols();
+ void unsupportedProtocols_data();
+ void unsupportedProtocols();
void oldErrorsOnSocketReuse();
+#if QT_CONFIG(openssl)
+ void alertMissingCertificate();
+ void alertInvalidCertificate();
+#endif // openssl
void setEmptyDefaultConfiguration(); // this test should be last
@@ -337,6 +341,8 @@ tst_QSslSocket::tst_QSslSocket()
qRegisterMetaType<QSslError>("QSslError");
qRegisterMetaType<QAbstractSocket::SocketState>("QAbstractSocket::SocketState");
qRegisterMetaType<QAbstractSocket::SocketError>("QAbstractSocket::SocketError");
+ qRegisterMetaType<QAlertLevel>("QAlertLevel");
+ qRegisterMetaType<QAlertType>("QAlertType");
#ifndef QT_NO_OPENSSL
qRegisterMetaType<QSslPreSharedKeyAuthenticator *>();
@@ -1180,25 +1186,6 @@ void tst_QSslSocket::protocol()
QCOMPARE(socket->protocol(), QSsl::AnyProtocol);
socket->abort();
}
- {
- // qt-test-server allows TlsV1, so it allows TlsV1SslV3
- socket->setProtocol(QSsl::TlsV1SslV3);
- QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3);
- socket->connectToHostEncrypted(QtNetworkSettings::httpServerName(), 443);
- if (setProxy && !socket->waitForEncrypted())
- QSKIP("Skipping flaky test - See QTBUG-29941");
- QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3);
- socket->abort();
- QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3);
- socket->connectToHost(QtNetworkSettings::httpServerName(), 443);
- if (setProxy && !socket->waitForConnected())
- QSKIP("Skipping flaky test - See QTBUG-29941");
- socket->startClientEncryption();
- if (setProxy && !socket->waitForEncrypted())
- QSKIP("Skipping flaky test - See QTBUG-29941");
- QCOMPARE(socket->protocol(), QSsl::TlsV1SslV3);
- socket->abort();
- }
}
class SslServer : public QTcpServer
@@ -1230,6 +1217,8 @@ public:
signals:
void socketError(QAbstractSocket::SocketError);
+ void gotAlert(QAlertLevel level, QAlertType type, const QString &message);
+ void alertSent(QAlertLevel level, QAlertType type, const QString &message);
protected:
void incomingConnection(qintptr socketDescriptor)
@@ -1241,6 +1230,8 @@ protected:
if (ignoreSslErrors)
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), this, SIGNAL(socketError(QAbstractSocket::SocketError)));
+ connect(socket, &QSslSocket::alertReceived, this, &SslServer::gotAlert);
+ connect(socket, &QSslSocket::alertSent, this, &SslServer::alertSent);
QFile file(m_keyFile);
QVERIFY(file.open(QIODevice::ReadOnly));
@@ -1304,20 +1295,13 @@ void tst_QSslSocket::protocolServerSide_data()
QTest::addColumn<bool>("works");
QTest::newRow("tls1.0-tls1.0") << QSsl::TlsV1_0 << QSsl::TlsV1_0 << true;
- QTest::newRow("tls1ssl3-tls1ssl3") << QSsl::TlsV1SslV3 << QSsl::TlsV1SslV3 << true;
QTest::newRow("any-any") << QSsl::AnyProtocol << QSsl::AnyProtocol << true;
QTest::newRow("secure-secure") << QSsl::SecureProtocols << QSsl::SecureProtocols << true;
- QTest::newRow("tls1-tls1ssl3") << QSsl::TlsV1_0 << QSsl::TlsV1SslV3 << true;
QTest::newRow("tls1.0-secure") << QSsl::TlsV1_0 << QSsl::SecureProtocols << true;
QTest::newRow("tls1.0-any") << QSsl::TlsV1_0 << QSsl::AnyProtocol << true;
- QTest::newRow("tls1ssl3-tls1.0") << QSsl::TlsV1SslV3 << QSsl::TlsV1_0 << true;
- QTest::newRow("tls1ssl3-secure") << QSsl::TlsV1SslV3 << QSsl::SecureProtocols << true;
- QTest::newRow("tls1ssl3-any") << QSsl::TlsV1SslV3 << QSsl::AnyProtocol << true;
-
QTest::newRow("secure-tls1.0") << QSsl::SecureProtocols << QSsl::TlsV1_0 << true;
- QTest::newRow("secure-tls1ssl3") << QSsl::SecureProtocols << QSsl::TlsV1SslV3 << true;
QTest::newRow("secure-any") << QSsl::SecureProtocols << QSsl::AnyProtocol << true;
QTest::newRow("tls1.0orlater-tls1.0") << QSsl::TlsV1_0OrLater << QSsl::TlsV1_0 << true;
@@ -1349,7 +1333,6 @@ void tst_QSslSocket::protocolServerSide_data()
#endif // TLS1_3_VERSION
QTest::newRow("any-tls1.0") << QSsl::AnyProtocol << QSsl::TlsV1_0 << true;
- QTest::newRow("any-tls1ssl3") << QSsl::AnyProtocol << QSsl::TlsV1SslV3 << true;
QTest::newRow("any-secure") << QSsl::AnyProtocol << QSsl::SecureProtocols << true;
}
@@ -4326,27 +4309,30 @@ void tst_QSslSocket::forwardReadChannelFinished()
#endif // QT_NO_OPENSSL
-void tst_QSslSocket::disabledProtocols_data()
+void tst_QSslSocket::unsupportedProtocols_data()
{
- QTest::addColumn<QSsl::SslProtocol>("disabledProtocol");
- QTest::newRow("SslV2") << QSsl::SslV2;
- QTest::newRow("SslV3") << QSsl::SslV3;
+ QTest::addColumn<QSsl::SslProtocol>("unsupportedProtocol");
+ QTest::newRow("DtlsV1_0") << QSsl::DtlsV1_0;
+ QTest::newRow("DtlsV1_2") << QSsl::DtlsV1_2;
+ QTest::newRow("DtlsV1_0OrLater") << QSsl::DtlsV1_0OrLater;
+ QTest::newRow("DtlsV1_2OrLater") << QSsl::DtlsV1_2OrLater;
+ QTest::newRow("UnknownProtocol") << QSsl::UnknownProtocol;
}
-void tst_QSslSocket::disabledProtocols()
+void tst_QSslSocket::unsupportedProtocols()
{
QFETCH_GLOBAL(const bool, setProxy);
if (setProxy)
return;
- QFETCH(const QSsl::SslProtocol, disabledProtocol);
+ QFETCH(const QSsl::SslProtocol, unsupportedProtocol);
const int timeoutMS = 500;
// Test a client socket.
{
// 0. connectToHostEncrypted: client-side, non-blocking API, error is discovered
// early, preventing any real connection from ever starting.
QSslSocket socket;
- socket.setProtocol(disabledProtocol);
+ socket.setProtocol(unsupportedProtocol);
QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError);
socket.connectToHostEncrypted(QStringLiteral("doesnotmatter.org"), 1010);
QCOMPARE(socket.error(), QAbstractSocket::SslInvalidUserDataError);
@@ -4364,7 +4350,7 @@ void tst_QSslSocket::disabledProtocols()
socket.connectToHost(QHostAddress::LocalHost, server.serverPort());
QVERIFY(socket.waitForConnected(timeoutMS));
- socket.setProtocol(disabledProtocol);
+ socket.setProtocol(unsupportedProtocol);
socket.startClientEncryption();
QCOMPARE(socket.error(), QAbstractSocket::SslInvalidUserDataError);
}
@@ -4378,7 +4364,7 @@ void tst_QSslSocket::disabledProtocols()
// and then calls startServerEncryption() (which must fall).
{
SslServer server;
- server.protocol = disabledProtocol;
+ server.protocol = unsupportedProtocol;
QVERIFY(server.listen());
QTestEventLoop loop;
@@ -4443,6 +4429,119 @@ void tst_QSslSocket::oldErrorsOnSocketReuse()
#endif // QT_NO_SSL
+#if QT_CONFIG(openssl)
+
+void (QSslSocket::*const tlsErrorSignal)(const QList<QSslError> &) = &QSslSocket::sslErrors;
+void (QAbstractSocket::*const socketErrorSignal)(QAbstractSocket::SocketError) = &QAbstractSocket::error;
+
+void tst_QSslSocket::alertMissingCertificate()
+{
+ // In this test we want a server to abort the connection due to the failing
+ // client authentication. The server expected to send an alert before closing
+ // the connection, and the client expected to receive this alert and report it.
+
+ QFETCH_GLOBAL(const bool, setProxy);
+ if (setProxy) // Not what we test here, bail out.
+ return;
+
+ SslServer server;
+ if (!server.listen(QHostAddress::LocalHost))
+ QSKIP("SslServer::listen() returned false");
+
+ // We want a certificate request to be sent to the client:
+ server.peerVerifyMode = QSslSocket::VerifyPeer;
+ // The only way we can force OpenSSL to send an alert - is to use
+ // a special option (so we fail before handshake is finished):
+ server.config.setMissingCertificateIsFatal(true);
+
+ QSslSocket clientSocket;
+ connect(&clientSocket, tlsErrorSignal, [&clientSocket](const QList<QSslError> &errors){
+ qDebug() << "ERR";
+ clientSocket.ignoreSslErrors(errors);
+ });
+
+ QSignalSpy serverSpy(&server, &SslServer::alertSent);
+ QSignalSpy clientSpy(&clientSocket, &QSslSocket::alertReceived);
+
+ clientSocket.connectToHostEncrypted(server.serverAddress().toString(), server.serverPort());
+
+ QTestEventLoop runner;
+ QTimer::singleShot(500, [&runner](){
+ runner.exitLoop();
+ });
+
+ int waitFor = 2;
+ auto earlyQuitter = [&runner, &waitFor](QAbstractSocket::SocketError) {
+ if (!--waitFor)
+ runner.exitLoop();
+ };
+
+ // Presumably, RemoteHostClosedError for the client and SslHandshakeError
+ // for the server:
+ connect(&clientSocket, socketErrorSignal, earlyQuitter);
+ connect(&server, &SslServer::socketError, earlyQuitter);
+
+ runner.enterLoopMSecs(1000);
+
+ QVERIFY(serverSpy.count() > 0);
+ QVERIFY(clientSpy.count() > 0);
+ QVERIFY(server.socket && !server.socket->isEncrypted());
+ QVERIFY(!clientSocket.isEncrypted());
+}
+
+void tst_QSslSocket::alertInvalidCertificate()
+{
+ // In this test a client will not ignore verification errors,
+ // it also will do 'early' checks, meaning the reported and
+ // not ignored _during_ the hanshake, not after. This ensures
+ // OpenSSL sends an alert.
+ QFETCH_GLOBAL(const bool, setProxy);
+ if (setProxy) // Not what we test here, bail out.
+ return;
+
+ SslServer server;
+ if (!server.listen(QHostAddress::LocalHost))
+ QSKIP("SslServer::listen() returned false");
+
+ QSslSocket clientSocket;
+ auto configuration = QSslConfiguration::defaultConfiguration();
+ configuration.setHandshakeMustInterruptOnError(true);
+ QVERIFY(configuration.handshakeMustInterruptOnError());
+ clientSocket.setSslConfiguration(configuration);
+
+ QSignalSpy serverSpy(&server, &SslServer::gotAlert);
+ QSignalSpy clientSpy(&clientSocket, &QSslSocket::alertSent);
+ QSignalSpy interruptedSpy(&clientSocket, &QSslSocket::handshakeInterruptedOnError);
+
+ clientSocket.connectToHostEncrypted(server.serverAddress().toString(), server.serverPort());
+
+ QTestEventLoop runner;
+ QTimer::singleShot(500, [&runner](){
+ runner.exitLoop();
+ });
+
+ int waitFor = 2;
+ auto earlyQuitter = [&runner, &waitFor](QAbstractSocket::SocketError) {
+ if (!--waitFor)
+ runner.exitLoop();
+ };
+
+ // Presumably, RemoteHostClosedError for the server and SslHandshakeError
+ // for the client:
+ connect(&clientSocket, socketErrorSignal, earlyQuitter);
+ connect(&server, &SslServer::socketError, earlyQuitter);
+
+ runner.enterLoopMSecs(1000);
+
+ QVERIFY(serverSpy.count() > 0);
+ QVERIFY(clientSpy.count() > 0);
+ QVERIFY(interruptedSpy.count() > 0);
+ QVERIFY(server.socket && !server.socket->isEncrypted());
+ QVERIFY(!clientSocket.isEncrypted());
+}
+
+#endif // openssl
+
QTEST_MAIN(tst_QSslSocket)
#include "tst_qsslsocket.moc"
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/CMakeLists.txt b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/CMakeLists.txt
new file mode 100644
index 0000000000..c377e0a46a
--- /dev/null
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_member/CMakeLists.txt
@@ -0,0 +1,35 @@
+# Generated from qsslsocket_onDemandCertificates_member.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qsslsocket_onDemandCertificates_member Test:
+#####################################################################
+
+add_qt_test(tst_qsslsocket_onDemandCertificates_member
+ SOURCES
+ tst_qsslsocket_onDemandCertificates_member.cpp
+ DEFINES
+ SRCDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/\\\"
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qsslsocket_onDemandCertificates_member.pro:<TRUE>:
+# _REQUIREMENTS = "qtConfig(private_tests)"
+# testcase.timeout = "300"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qsslsocket_onDemandCertificates_member.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qsslsocket_onDemandCertificates_member.pro:else:
+# DESTDIR = "release"
+
+#### Keys ignored in scope 5:.:.:qsslsocket_onDemandCertificates_member.pro:LINUX:
+# QT_TEST_SERVER_LIST = "squid" "danted"
diff --git a/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/CMakeLists.txt b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/CMakeLists.txt
new file mode 100644
index 0000000000..f3a3178879
--- /dev/null
+++ b/tests/auto/network/ssl/qsslsocket_onDemandCertificates_static/CMakeLists.txt
@@ -0,0 +1,34 @@
+# Generated from qsslsocket_onDemandCertificates_static.pro.
+
+if(NOT QT_FEATURE_private_tests)
+ return()
+endif()
+
+#####################################################################
+## tst_qsslsocket_onDemandCertificates_static Test:
+#####################################################################
+
+add_qt_test(tst_qsslsocket_onDemandCertificates_static
+ SOURCES
+ tst_qsslsocket_onDemandCertificates_static.cpp
+ DEFINES
+ SRCDIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/\\\"
+ PUBLIC_LIBRARIES
+ Qt::CorePrivate
+ Qt::NetworkPrivate
+)
+
+#### Keys ignored in scope 1:.:.:qsslsocket_onDemandCertificates_static.pro:<TRUE>:
+# _REQUIREMENTS = "qtConfig(private_tests)"
+
+## Scopes:
+#####################################################################
+
+#### Keys ignored in scope 3:.:.:qsslsocket_onDemandCertificates_static.pro:(CMAKE_BUILD_TYPE STREQUAL Debug):
+# DESTDIR = "debug"
+
+#### Keys ignored in scope 4:.:.:qsslsocket_onDemandCertificates_static.pro:else:
+# DESTDIR = "release"
+
+#### Keys ignored in scope 5:.:.:qsslsocket_onDemandCertificates_static.pro:LINUX:
+# QT_TEST_SERVER_LIST = "squid" "danted"