diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-05-10 11:22:31 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-05-10 11:22:31 +0200 |
commit | db4a3f1f91a5ddec9c6447e28ced46e6e381ac18 (patch) | |
tree | a3f4619d19a53d40c8a41968a540efd0f5cddbff /tests | |
parent | fe497bfaa009b9dff1e7f3fb68d6207968a247c5 (diff) | |
parent | 6429e872494925508bcf84f3d3b2f3f821d4eba5 (diff) |
Merge 1.13 into master
Change-Id: Ic02d717f80f5d831f0cedb3b7c565a9bfef3a2a3
Diffstat (limited to 'tests')
6 files changed, 75 insertions, 17 deletions
diff --git a/tests/auto/blackbox/testdata-qt/static-qt-plugin-linking/main.cpp b/tests/auto/blackbox/testdata-qt/static-qt-plugin-linking/main.cpp new file mode 100644 index 000000000..d1bca9e2b --- /dev/null +++ b/tests/auto/blackbox/testdata-qt/static-qt-plugin-linking/main.cpp @@ -0,0 +1,7 @@ +#include <QCoreApplication> + +int main(int argc, char *argv[]) +{ + QCoreApplication app(argc, argv); + return app.exec(); +} diff --git a/tests/auto/blackbox/testdata-qt/static-qt-plugin-linking/static-qt-plugin-linking.qbs b/tests/auto/blackbox/testdata-qt/static-qt-plugin-linking/static-qt-plugin-linking.qbs index ed479c8f1..745fe5527 100644 --- a/tests/auto/blackbox/testdata-qt/static-qt-plugin-linking/static-qt-plugin-linking.qbs +++ b/tests/auto/blackbox/testdata-qt/static-qt-plugin-linking/static-qt-plugin-linking.qbs @@ -1,5 +1,5 @@ -StaticLibrary { - name: "somelib" +Product { + name: "p" Probe { id: staticQtChecker property bool staticQt: Qt.core.staticBuild @@ -10,6 +10,11 @@ StaticLibrary { } } + Group { + condition: type.contains("application") + files: "main.cpp" + } + Depends { name: "Qt.core" } Depends { name: "Qt.gui" } Depends { name: "Qt.qminimal"; condition: Qt.core.staticBuild; } diff --git a/tests/auto/blackbox/testdata/minimumSystemVersion/main.mm b/tests/auto/blackbox/testdata/minimumSystemVersion/main.mm index cd5a8ec75..23d31c85e 100644 --- a/tests/auto/blackbox/testdata/minimumSystemVersion/main.mm +++ b/tests/auto/blackbox/testdata/minimumSystemVersion/main.mm @@ -54,7 +54,20 @@ int main() if (print && [line rangeOfString:@"version"].location != NSNotFound) { std::cout << [[line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] UTF8String] << std::endl; print = false; + continue; } + +#ifdef __clang__ +#if __clang_major__ >= 10 && __clang_minor__ >= 0 + if ([line rangeOfString:@"LC_BUILD_VERSION"].location != NSNotFound) + print = true; + + if (print && [line rangeOfString:@"minos"].location != NSNotFound) { + std::cout << [[line stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] UTF8String] << std::endl; + print = false; + } +#endif +#endif // __clang__ } } diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp index 21f19c8a2..5747b52b1 100644 --- a/tests/auto/blackbox/tst_blackbox.cpp +++ b/tests/auto/blackbox/tst_blackbox.cpp @@ -36,6 +36,7 @@ #include <tools/preferences.h> #include <tools/profile.h> #include <tools/qttools.h> +#include <tools/settings.h> #include <tools/shellutils.h> #include <tools/stlutils.h> #include <tools/version.h> @@ -146,6 +147,25 @@ bool TestBlackbox::lexYaccExist() && !findExecutable(QStringList("yacc")).isEmpty(); } +qbs::Version TestBlackbox::bisonVersion() +{ + const auto yaccBinary = findExecutable(QStringList("yacc")); + QProcess process; + process.start(yaccBinary, QStringList() << "--version"); + if (!process.waitForStarted()) + return qbs::Version(); + if (!process.waitForFinished()) + return qbs::Version(); + const auto processStdOut = process.readAllStandardOutput(); + if (processStdOut.isEmpty()) + return qbs::Version(); + const auto line = processStdOut.split('\n')[0]; + const auto words = line.split(' '); + if (words.empty()) + return qbs::Version(); + return qbs::Version::fromString(words.last()); +} + void TestBlackbox::sevenZip() { QDir::setCurrent(testDataDir + "/archiver"); @@ -4346,20 +4366,27 @@ void TestBlackbox::lexyaccOutputs() } \ } - QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/lex_prefix")); - rmDirR(relativeBuildDir()); - QCOMPARE(runQbs(params), 0); - VERIFY_COMPILATION(yaccOutputFilePath); + const auto version = bisonVersion(); + if (version >= qbs::Version(2, 6)) { + // prefix only supported starting from bison 2.6 + QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/lex_prefix")); + rmDirR(relativeBuildDir()); + QCOMPARE(runQbs(params), 0); + VERIFY_COMPILATION(yaccOutputFilePath); + } QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/lex_outfile")); rmDirR(relativeBuildDir()); QCOMPARE(runQbs(params), 0); VERIFY_COMPILATION(yaccOutputFilePath); - QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/yacc_output")); - rmDirR(relativeBuildDir()); - QCOMPARE(runQbs(params), 0); - VERIFY_COMPILATION(lexOutputFilePath); + if (version >= qbs::Version(2, 4)) { + // output syntax was changed in bison 2.4 + QVERIFY(QDir::setCurrent(testDataDir + "/lexyacc/yacc_output")); + rmDirR(relativeBuildDir()); + QCOMPARE(runQbs(params), 0); + VERIFY_COMPILATION(lexOutputFilePath); + } #undef VERIFY_COMPILATION } @@ -5207,8 +5234,9 @@ void TestBlackbox::qbsConfig() bool canWriteToSystemSettings; QString testSettingsFilePath; { - QSettings testSettings(QSettings::IniFormat, QSettings::SystemScope, - "dummyOrg", "dummyApp"); + QSettings testSettings( + qbs::Settings::defaultSystemSettingsBaseDir() + "/dummyOrg" + "/dummyApp.conf", + QSettings::IniFormat); testSettings.setValue("dummyKey", "dummyValue"); testSettings.sync(); canWriteToSystemSettings = testSettings.status() == QSettings::NoError; @@ -6477,10 +6505,11 @@ void TestBlackbox::minimumSystemVersion_data() const auto v = defaultClangMinimumDeploymentTarget(); auto result = "__MAC_OS_X_VERSION_MIN_REQUIRED=" + QString::number(toMinimumDeploymentTargetValue(v, true)); - if (v < qbs::Version(10, 14)) { - result += "\nversion " - + QString::number(v.majorVersion()) + "." + QString::number(v.minorVersion()); - } + if (v >= qbs::Version(10, 14)) + result += "\nminos "; + else + result += "\nversion "; + result += QString::number(v.majorVersion()) + "." + QString::number(v.minorVersion()); return result; } diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h index 624cd5fbb..f7f1c9a29 100644 --- a/tests/auto/blackbox/tst_blackbox.h +++ b/tests/auto/blackbox/tst_blackbox.h @@ -310,6 +310,7 @@ private: QMap<QString, QString> findTypeScript(int *status); QString findArchiver(const QString &fileName, int *status = nullptr); static bool lexYaccExist(); + static qbs::Version bisonVersion(); }; #endif // TST_BLACKBOX_H diff --git a/tests/auto/blackbox/tst_blackboxqt.cpp b/tests/auto/blackbox/tst_blackboxqt.cpp index 4428ddb1d..2b2b6814e 100644 --- a/tests/auto/blackbox/tst_blackboxqt.cpp +++ b/tests/auto/blackbox/tst_blackboxqt.cpp @@ -411,9 +411,12 @@ void TestBlackboxQt::removeMocHeaderFromFileList() void TestBlackboxQt::staticQtPluginLinking() { QDir::setCurrent(testDataDir + "/static-qt-plugin-linking"); - QCOMPARE(runQbs(), 0); + QCOMPARE(runQbs(QStringList("products.p.type:application")), 0); const bool isStaticQt = m_qbsStdout.contains("Qt is static"); QVERIFY2(m_qbsStdout.contains("Creating static import") == isStaticQt, m_qbsStdout.constData()); + QCOMPARE(runQbs(QbsRunParameters("resolve", QStringList("products.p.type:staticlibrary"))), 0); + QCOMPARE(runQbs(), 0); + QVERIFY2(!m_qbsStdout.contains("Creating static import"), m_qbsStdout.constData()); } void TestBlackboxQt::trackAddMocInclude() |