aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-05-03 11:24:26 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-05-14 08:35:08 +0000
commit2bda52aa3d50deb56128f42395ae9f2686af2a99 (patch)
treeec88cd206f39606aa97df9a72c05cfea5fc2f203 /tests
parentb9a1173d3b3677416295c4739aa53d35365fa0e1 (diff)
Make cpp.cxxLanguageVersion a list
... and choose the highest entry. This enables different modules to specify their requirements without introducing conflicts. Same for cpp.cLanguageVersion. Task-number: QBS-1225 Change-Id: I96ed6c370eb190023fdb69274dcb080d967f512d Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/blackbox/testdata/maximum-cxx-language-version/main.cpp1
-rw-r--r--tests/auto/blackbox/testdata/maximum-cxx-language-version/maximum-cxx-language-version.qbs12
-rw-r--r--tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newermodule/newermodule.qbs6
-rw-r--r--tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs6
-rw-r--r--tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/oldmodule/oldmodule.qbs6
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp12
-rw-r--r--tests/auto/blackbox/tst_blackbox.h1
7 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/main.cpp b/tests/auto/blackbox/testdata/maximum-cxx-language-version/main.cpp
new file mode 100644
index 000000000..237c8ce18
--- /dev/null
+++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/main.cpp
@@ -0,0 +1 @@
+int main() {}
diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/maximum-cxx-language-version.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/maximum-cxx-language-version.qbs
new file mode 100644
index 000000000..5dd298aa8
--- /dev/null
+++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/maximum-cxx-language-version.qbs
@@ -0,0 +1,12 @@
+import qbs
+
+CppApplication {
+ name: "app"
+ property bool enableNewestModule: true
+
+ Depends { name: "oldmodule" }
+ Depends { name: "newermodule" }
+ Depends { name: "newestmodule"; condition: enableNewestModule }
+
+ files: "main.cpp"
+}
diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newermodule/newermodule.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newermodule/newermodule.qbs
new file mode 100644
index 000000000..dfc28b946
--- /dev/null
+++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newermodule/newermodule.qbs
@@ -0,0 +1,6 @@
+import qbs
+
+Module {
+ Depends { name: "cpp" }
+ cpp.cxxLanguageVersion: "c++14"
+}
diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs
new file mode 100644
index 000000000..f306a5389
--- /dev/null
+++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/newestmodule/newestmodule.qbs
@@ -0,0 +1,6 @@
+import qbs
+
+Module {
+ Depends { name: "cpp" }
+ cpp.cxxLanguageVersion: "c++17"
+}
diff --git a/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/oldmodule/oldmodule.qbs b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/oldmodule/oldmodule.qbs
new file mode 100644
index 000000000..b05c855a3
--- /dev/null
+++ b/tests/auto/blackbox/testdata/maximum-cxx-language-version/modules/oldmodule/oldmodule.qbs
@@ -0,0 +1,6 @@
+import qbs
+
+Module {
+ Depends { name: "cpp" }
+ cpp.cxxLanguageVersion: "c++11"
+}
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index a18a735ab..6ef0acaba 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -5552,6 +5552,18 @@ void TestBlackbox::makefileGenerator()
QVERIFY(!QFile::exists(relativeExecutableFilePath("the app")));
}
+void TestBlackbox::maximumCxxLanguageVersion()
+{
+ QDir::setCurrent(testDataDir + "/maximum-cxx-language-version");
+ QCOMPARE(runQbs(QStringList({"--command-echo-mode", "command-line"})), 0);
+ QVERIFY2(m_qbsStdout.contains("c++17") || m_qbsStdout.contains("c++latest"),
+ m_qbsStdout.constData());
+ QCOMPARE(runQbs(QbsRunParameters("resolve",
+ QStringList("products.app.enableNewestModule:false"))), 0);
+ QCOMPARE(runQbs(QStringList({"--command-echo-mode", "command-line"})), 0);
+ QVERIFY2(m_qbsStdout.contains("c++14"), m_qbsStdout.constData());
+}
+
void TestBlackbox::minimumSystemVersion()
{
rmDirR(relativeBuildDir());
diff --git a/tests/auto/blackbox/tst_blackbox.h b/tests/auto/blackbox/tst_blackbox.h
index 5a4544bbe..91a177063 100644
--- a/tests/auto/blackbox/tst_blackbox.h
+++ b/tests/auto/blackbox/tst_blackbox.h
@@ -157,6 +157,7 @@ private slots:
void loadableModule();
void localDeployment();
void makefileGenerator();
+ void maximumCxxLanguageVersion();
void minimumSystemVersion();
void minimumSystemVersion_data();
void missingBuildGraph();