Merge remote-tracking branch 'origin/5.9' into 5.10
Conflicts: tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp Change-Id: Ib6dd965a7eb6f59103e276b3407739147ecd37b2
This commit is contained in:
commit
24fba6744c
@ -157,10 +157,10 @@ rem Determine host spec
|
|||||||
if "%PLATFORM%" == "" (
|
if "%PLATFORM%" == "" (
|
||||||
if not "%icl.exe%" == "" (
|
if not "%icl.exe%" == "" (
|
||||||
set PLATFORM=win32-icc
|
set PLATFORM=win32-icc
|
||||||
) else if not "%clang-cl.exe%" == "" (
|
|
||||||
set PLATFORM=win32-clang-msvc
|
|
||||||
) else if not "%cl.exe%" == "" (
|
) else if not "%cl.exe%" == "" (
|
||||||
set PLATFORM=win32-msvc
|
set PLATFORM=win32-msvc
|
||||||
|
) else if not "%clang-cl.exe%" == "" (
|
||||||
|
set PLATFORM=win32-clang-msvc
|
||||||
) else if not "%g++.exe%" == "" (
|
) else if not "%g++.exe%" == "" (
|
||||||
set PLATFORM=win32-g++
|
set PLATFORM=win32-g++
|
||||||
) else (
|
) else (
|
||||||
|
@ -54,3 +54,7 @@ macx-xcode:qtConfig(static): \
|
|||||||
# feature, which allows Xcode to choose the Qt libraries to link to
|
# feature, which allows Xcode to choose the Qt libraries to link to
|
||||||
# at build time, depending on the current Xcode SDK and configuration.
|
# at build time, depending on the current Xcode SDK and configuration.
|
||||||
QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX
|
QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX
|
||||||
|
|
||||||
|
xcode_copy_phase_strip_setting.name = COPY_PHASE_STRIP
|
||||||
|
xcode_copy_phase_strip_setting.value = NO
|
||||||
|
QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
|
||||||
|
@ -279,7 +279,6 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
|
|||||||
QString configName = (as_release ? "Release" : "Debug");
|
QString configName = (as_release ? "Release" : "Debug");
|
||||||
|
|
||||||
QMap<QString, QString> settings;
|
QMap<QString, QString> settings;
|
||||||
settings.insert("COPY_PHASE_STRIP", (as_release ? "YES" : "NO"));
|
|
||||||
if(project->isActiveConfig("sdk") && !project->isEmpty("QMAKE_MAC_SDK"))
|
if(project->isActiveConfig("sdk") && !project->isEmpty("QMAKE_MAC_SDK"))
|
||||||
settings.insert("SDKROOT", project->first("QMAKE_MAC_SDK").toQString());
|
settings.insert("SDKROOT", project->first("QMAKE_MAC_SDK").toQString());
|
||||||
{
|
{
|
||||||
@ -1493,7 +1492,6 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
|
|||||||
settings.insert("PROVISIONING_PROFILE_SPECIFIER", project->first("QMAKE_PROVISIONING_PROFILE").toQString());
|
settings.insert("PROVISIONING_PROFILE_SPECIFIER", project->first("QMAKE_PROVISIONING_PROFILE").toQString());
|
||||||
}
|
}
|
||||||
|
|
||||||
settings.insert("COPY_PHASE_STRIP", (as_release ? "YES" : "NO"));
|
|
||||||
settings.insert("APPLICATION_EXTENSION_API_ONLY", project->isActiveConfig("app_extension_api_only") ? "YES" : "NO");
|
settings.insert("APPLICATION_EXTENSION_API_ONLY", project->isActiveConfig("app_extension_api_only") ? "YES" : "NO");
|
||||||
// required for tvOS (and watchos), optional on iOS (deployment target >= iOS 6.0)
|
// required for tvOS (and watchos), optional on iOS (deployment target >= iOS 6.0)
|
||||||
settings.insert("ENABLE_BITCODE", project->isActiveConfig("bitcode") ? "YES" : "NO");
|
settings.insert("ENABLE_BITCODE", project->isActiveConfig("bitcode") ? "YES" : "NO");
|
||||||
|
@ -155,6 +155,20 @@ UnixMakefileGenerator::writeSubTargets(QTextStream &t, QList<MakefileGenerator::
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static QString rfc1034Identifier(const QString &str)
|
||||||
|
{
|
||||||
|
QString s = str;
|
||||||
|
for (QChar &ch : s) {
|
||||||
|
const char c = ch.toLatin1();
|
||||||
|
|
||||||
|
const bool okChar = (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z')
|
||||||
|
|| (c >= 'a' && c <= 'z') || c == '-' || c == '.';
|
||||||
|
if (!okChar)
|
||||||
|
ch = QChar::fromLatin1('-');
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
||||||
{
|
{
|
||||||
@ -835,7 +849,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
|
|||||||
if (bundleIdentifier.endsWith(".framework"))
|
if (bundleIdentifier.endsWith(".framework"))
|
||||||
bundleIdentifier.chop(10);
|
bundleIdentifier.chop(10);
|
||||||
// replace invalid bundle id characters
|
// replace invalid bundle id characters
|
||||||
bundleIdentifier.replace('_', '-');
|
bundleIdentifier = rfc1034Identifier(bundleIdentifier);
|
||||||
commonSedArgs << "-e \"s,@BUNDLEIDENTIFIER@," << bundleIdentifier << ",g\" ";
|
commonSedArgs << "-e \"s,@BUNDLEIDENTIFIER@," << bundleIdentifier << ",g\" ";
|
||||||
commonSedArgs << "-e \"s,\\$${PRODUCT_BUNDLE_IDENTIFIER}," << bundleIdentifier << ",g\" ";
|
commonSedArgs << "-e \"s,\\$${PRODUCT_BUNDLE_IDENTIFIER}," << bundleIdentifier << ",g\" ";
|
||||||
|
|
||||||
|
@ -324,7 +324,8 @@ void MingwMakefileGenerator::writeBuildRulesPart(QTextStream &t)
|
|||||||
t << "\n\t" <<var("QMAKE_PRE_LINK");
|
t << "\n\t" <<var("QMAKE_PRE_LINK");
|
||||||
if(project->isActiveConfig("staticlib") && project->first("TEMPLATE") == "lib") {
|
if(project->isActiveConfig("staticlib") && project->first("TEMPLATE") == "lib") {
|
||||||
t << "\n\t-$(DEL_FILE) $(DESTDIR_TARGET) 2>" << var("QMAKE_SHELL_NULL_DEVICE");
|
t << "\n\t-$(DEL_FILE) $(DESTDIR_TARGET) 2>" << var("QMAKE_SHELL_NULL_DEVICE");
|
||||||
if (project->values("OBJECTS").count() < var("QMAKE_LINK_OBJECT_MAX").toInt()) {
|
const ProString &objmax = project->first("QMAKE_LINK_OBJECT_MAX");
|
||||||
|
if (objmax.isEmpty() || project->values("OBJECTS").count() < objmax.toInt()) {
|
||||||
t << "\n\t$(LIB) $(DESTDIR_TARGET) " << objectsLinkLine << " " ;
|
t << "\n\t$(LIB) $(DESTDIR_TARGET) " << objectsLinkLine << " " ;
|
||||||
} else {
|
} else {
|
||||||
t << "\n\t" << objectsLinkLine << " " ;
|
t << "\n\t" << objectsLinkLine << " " ;
|
||||||
|
@ -1203,7 +1203,7 @@ void QWindowsNativeFileDialogBase::onSelectionChange()
|
|||||||
{
|
{
|
||||||
const QList<QUrl> current = selectedFiles();
|
const QList<QUrl> current = selectedFiles();
|
||||||
m_data.setSelectedFiles(current);
|
m_data.setSelectedFiles(current);
|
||||||
qDebug() << __FUNCTION__ << current << current.size();
|
qCDebug(lcQpaDialogs) << __FUNCTION__ << current << current.size();
|
||||||
|
|
||||||
if (current.size() == 1)
|
if (current.size() == 1)
|
||||||
emit currentChanged(current.front());
|
emit currentChanged(current.front());
|
||||||
|
@ -295,11 +295,15 @@ private:
|
|||||||
|
|
||||||
bool develMode = false;
|
bool develMode = false;
|
||||||
bool debugWait = false;
|
bool debugWait = false;
|
||||||
for (const char *arg : args) {
|
for (int i = args.count() - 1; i >= 0; --i) {
|
||||||
if (strcmp(arg, "-qdevel") == 0)
|
const char *arg = args.at(i);
|
||||||
|
if (strcmp(arg, "-qdevel") == 0) {
|
||||||
develMode = true;
|
develMode = true;
|
||||||
if (strcmp(arg, "-qdebug") == 0)
|
args.remove(i);
|
||||||
|
} else if (strcmp(arg, "-qdebug") == 0) {
|
||||||
debugWait = true;
|
debugWait = true;
|
||||||
|
args.remove(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (develMode) {
|
if (develMode) {
|
||||||
// Write a PID file to help runner
|
// Write a PID file to help runner
|
||||||
|
@ -18,12 +18,9 @@ osx
|
|||||||
osx
|
osx
|
||||||
[broadcasting]
|
[broadcasting]
|
||||||
osx
|
osx
|
||||||
ubuntu-16.04
|
|
||||||
[zeroLengthDatagram]
|
[zeroLengthDatagram]
|
||||||
osx
|
osx
|
||||||
[linkLocalIPv6]
|
[linkLocalIPv6]
|
||||||
redhatenterpriselinuxworkstation-6.6
|
redhatenterpriselinuxworkstation-6.6
|
||||||
[pendingDatagramSize]
|
|
||||||
ubuntu-16.04
|
|
||||||
[readyReadForEmptyDatagram]
|
[readyReadForEmptyDatagram]
|
||||||
ubuntu-16.04
|
ubuntu-16.04
|
||||||
|
@ -126,12 +126,14 @@ protected slots:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
bool shouldSkipIpv6TestsForBrokenSetsockopt();
|
bool shouldSkipIpv6TestsForBrokenSetsockopt();
|
||||||
|
bool shouldWorkaroundLinuxKernelBug();
|
||||||
#ifdef SHOULD_CHECK_SYSCALL_SUPPORT
|
#ifdef SHOULD_CHECK_SYSCALL_SUPPORT
|
||||||
bool ipv6SetsockoptionMissing(int level, int optname);
|
bool ipv6SetsockoptionMissing(int level, int optname);
|
||||||
#endif
|
#endif
|
||||||
QNetworkInterface interfaceForGroup(const QHostAddress &multicastGroup);
|
QNetworkInterface interfaceForGroup(const QHostAddress &multicastGroup);
|
||||||
|
|
||||||
bool m_skipUnsupportedIPv6Tests;
|
bool m_skipUnsupportedIPv6Tests;
|
||||||
|
bool m_workaroundLinuxKernelBug;
|
||||||
QList<QHostAddress> allAddresses;
|
QList<QHostAddress> allAddresses;
|
||||||
QHostAddress multicastGroup4, multicastGroup6;
|
QHostAddress multicastGroup4, multicastGroup6;
|
||||||
QVector<QHostAddress> linklocalMulticastGroups;
|
QVector<QHostAddress> linklocalMulticastGroups;
|
||||||
@ -207,6 +209,16 @@ QNetworkInterface tst_QUdpSocket::interfaceForGroup(const QHostAddress &multicas
|
|||||||
return ipv6if;
|
return ipv6if;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool tst_QUdpSocket::shouldWorkaroundLinuxKernelBug()
|
||||||
|
{
|
||||||
|
#ifdef Q_OS_LINUX
|
||||||
|
const QVersionNumber version = QVersionNumber::fromString(QSysInfo::kernelVersion());
|
||||||
|
return version.majorVersion() == 4 && version.minorVersion() >= 6 && version.minorVersion() < 13;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static QHostAddress makeNonAny(const QHostAddress &address, QHostAddress::SpecialAddress preferForAny = QHostAddress::LocalHost)
|
static QHostAddress makeNonAny(const QHostAddress &address, QHostAddress::SpecialAddress preferForAny = QHostAddress::LocalHost)
|
||||||
{
|
{
|
||||||
if (address == QHostAddress::Any)
|
if (address == QHostAddress::Any)
|
||||||
@ -276,6 +288,7 @@ void tst_QUdpSocket::initTestCase()
|
|||||||
|
|
||||||
qDebug() << "Will use multicast groups" << multicastGroup4 << multicastGroup6 << linklocalMulticastGroups;
|
qDebug() << "Will use multicast groups" << multicastGroup4 << multicastGroup6 << linklocalMulticastGroups;
|
||||||
|
|
||||||
|
m_workaroundLinuxKernelBug = shouldWorkaroundLinuxKernelBug();
|
||||||
if (EmulationDetector::isRunningArmOnX86())
|
if (EmulationDetector::isRunningArmOnX86())
|
||||||
QSKIP("This test is unreliable due to QEMU emulation shortcomings.");
|
QSKIP("This test is unreliable due to QEMU emulation shortcomings.");
|
||||||
}
|
}
|
||||||
@ -360,6 +373,9 @@ void tst_QUdpSocket::unconnectedServerAndClientTest()
|
|||||||
|
|
||||||
void tst_QUdpSocket::broadcasting()
|
void tst_QUdpSocket::broadcasting()
|
||||||
{
|
{
|
||||||
|
if (m_workaroundLinuxKernelBug)
|
||||||
|
QSKIP("This test can fail due to linux kernel bug");
|
||||||
|
|
||||||
QFETCH_GLOBAL(bool, setProxy);
|
QFETCH_GLOBAL(bool, setProxy);
|
||||||
if (setProxy) {
|
if (setProxy) {
|
||||||
#ifndef QT_NO_NETWORKPROXY
|
#ifndef QT_NO_NETWORKPROXY
|
||||||
@ -805,6 +821,9 @@ void tst_QUdpSocket::bindAndConnectToHost()
|
|||||||
|
|
||||||
void tst_QUdpSocket::pendingDatagramSize()
|
void tst_QUdpSocket::pendingDatagramSize()
|
||||||
{
|
{
|
||||||
|
if (m_workaroundLinuxKernelBug)
|
||||||
|
QSKIP("This test can fail due to linux kernel bug");
|
||||||
|
|
||||||
QUdpSocket server;
|
QUdpSocket server;
|
||||||
QVERIFY2(server.bind(), server.errorString().toLatin1().constData());
|
QVERIFY2(server.bind(), server.errorString().toLatin1().constData());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user