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:
Liang Qi 2018-01-07 14:45:46 +01:00
commit 24fba6744c
9 changed files with 50 additions and 13 deletions

View File

@ -157,10 +157,10 @@ rem Determine host spec
if "%PLATFORM%" == "" (
if not "%icl.exe%" == "" (
set PLATFORM=win32-icc
) else if not "%clang-cl.exe%" == "" (
set PLATFORM=win32-clang-msvc
) else if not "%cl.exe%" == "" (
set PLATFORM=win32-msvc
) else if not "%clang-cl.exe%" == "" (
set PLATFORM=win32-clang-msvc
) else if not "%g++.exe%" == "" (
set PLATFORM=win32-g++
) else (

View File

@ -54,3 +54,7 @@ macx-xcode:qtConfig(static): \
# feature, which allows Xcode to choose the Qt libraries to link to
# at build time, depending on the current Xcode SDK and configuration.
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

View File

@ -279,7 +279,6 @@ ProjectBuilderMakefileGenerator::writeSubDirs(QTextStream &t)
QString configName = (as_release ? "Release" : "Debug");
QMap<QString, QString> settings;
settings.insert("COPY_PHASE_STRIP", (as_release ? "YES" : "NO"));
if(project->isActiveConfig("sdk") && !project->isEmpty("QMAKE_MAC_SDK"))
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("COPY_PHASE_STRIP", (as_release ? "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)
settings.insert("ENABLE_BITCODE", project->isActiveConfig("bitcode") ? "YES" : "NO");

View File

@ -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
UnixMakefileGenerator::writeMakeParts(QTextStream &t)
{
@ -835,7 +849,7 @@ UnixMakefileGenerator::writeMakeParts(QTextStream &t)
if (bundleIdentifier.endsWith(".framework"))
bundleIdentifier.chop(10);
// replace invalid bundle id characters
bundleIdentifier.replace('_', '-');
bundleIdentifier = rfc1034Identifier(bundleIdentifier);
commonSedArgs << "-e \"s,@BUNDLEIDENTIFIER@," << bundleIdentifier << ",g\" ";
commonSedArgs << "-e \"s,\\$${PRODUCT_BUNDLE_IDENTIFIER}," << bundleIdentifier << ",g\" ";

View File

@ -324,7 +324,8 @@ void MingwMakefileGenerator::writeBuildRulesPart(QTextStream &t)
t << "\n\t" <<var("QMAKE_PRE_LINK");
if(project->isActiveConfig("staticlib") && project->first("TEMPLATE") == "lib") {
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 << " " ;
} else {
t << "\n\t" << objectsLinkLine << " " ;

View File

@ -1203,7 +1203,7 @@ void QWindowsNativeFileDialogBase::onSelectionChange()
{
const QList<QUrl> current = selectedFiles();
m_data.setSelectedFiles(current);
qDebug() << __FUNCTION__ << current << current.size();
qCDebug(lcQpaDialogs) << __FUNCTION__ << current << current.size();
if (current.size() == 1)
emit currentChanged(current.front());

View File

@ -295,11 +295,15 @@ private:
bool develMode = false;
bool debugWait = false;
for (const char *arg : args) {
if (strcmp(arg, "-qdevel") == 0)
for (int i = args.count() - 1; i >= 0; --i) {
const char *arg = args.at(i);
if (strcmp(arg, "-qdevel") == 0) {
develMode = true;
if (strcmp(arg, "-qdebug") == 0)
args.remove(i);
} else if (strcmp(arg, "-qdebug") == 0) {
debugWait = true;
args.remove(i);
}
}
if (develMode) {
// Write a PID file to help runner

View File

@ -18,12 +18,9 @@ osx
osx
[broadcasting]
osx
ubuntu-16.04
[zeroLengthDatagram]
osx
[linkLocalIPv6]
redhatenterpriselinuxworkstation-6.6
[pendingDatagramSize]
ubuntu-16.04
[readyReadForEmptyDatagram]
ubuntu-16.04

View File

@ -126,12 +126,14 @@ protected slots:
private:
bool shouldSkipIpv6TestsForBrokenSetsockopt();
bool shouldWorkaroundLinuxKernelBug();
#ifdef SHOULD_CHECK_SYSCALL_SUPPORT
bool ipv6SetsockoptionMissing(int level, int optname);
#endif
QNetworkInterface interfaceForGroup(const QHostAddress &multicastGroup);
bool m_skipUnsupportedIPv6Tests;
bool m_workaroundLinuxKernelBug;
QList<QHostAddress> allAddresses;
QHostAddress multicastGroup4, multicastGroup6;
QVector<QHostAddress> linklocalMulticastGroups;
@ -207,6 +209,16 @@ QNetworkInterface tst_QUdpSocket::interfaceForGroup(const QHostAddress &multicas
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)
{
if (address == QHostAddress::Any)
@ -276,6 +288,7 @@ void tst_QUdpSocket::initTestCase()
qDebug() << "Will use multicast groups" << multicastGroup4 << multicastGroup6 << linklocalMulticastGroups;
m_workaroundLinuxKernelBug = shouldWorkaroundLinuxKernelBug();
if (EmulationDetector::isRunningArmOnX86())
QSKIP("This test is unreliable due to QEMU emulation shortcomings.");
}
@ -360,6 +373,9 @@ void tst_QUdpSocket::unconnectedServerAndClientTest()
void tst_QUdpSocket::broadcasting()
{
if (m_workaroundLinuxKernelBug)
QSKIP("This test can fail due to linux kernel bug");
QFETCH_GLOBAL(bool, setProxy);
if (setProxy) {
#ifndef QT_NO_NETWORKPROXY
@ -805,6 +821,9 @@ void tst_QUdpSocket::bindAndConnectToHost()
void tst_QUdpSocket::pendingDatagramSize()
{
if (m_workaroundLinuxKernelBug)
QSKIP("This test can fail due to linux kernel bug");
QUdpSocket server;
QVERIFY2(server.bind(), server.errorString().toLatin1().constData());