summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAlexander Volkov <a.volkov@rusbitech.ru>2017-01-07 12:23:47 +0300
committerLiang Qi <liang.qi@qt.io>2018-09-24 09:19:09 +0000
commita332937cdebf63e7db93e11f3193fc14c4de7e60 (patch)
tree2fcf6b550d6404bdce5ef7c209e5e797257ec218 /tests
parent5f2ab16bbc6e6345f3ec2229b712ef309f1ff18b (diff)
qmake: Add test functions for comparing version numbers
qmake really lacks version comparing functions: users either use ugly constructions to compare versions by components, such as greaterThan(QT_CLANG_MAJOR_VERSION, 3)|greaterThan(QT_CLANG_MINOR_VERSION, 4): or even incorrectly compare versions as strings: !lessThan(apple_clang_ver, "5.1")|!lessThan(reg_clang_ver, "3.4"): Add test functions versionAtLeast and versionAtMost which use QVersionNumber to compare version numbers by components. Change-Id: I65e6b3c296d0301d544b7e38bf3d44f8d555c7fc Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> (cherry picked from commit 8a3e8856e5606ec616d4420ff8c4f77969432390) Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/tools/qmakelib/evaltest.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/tools/qmakelib/evaltest.cpp b/tests/auto/tools/qmakelib/evaltest.cpp
index a057c7e15a..abb7a1a964 100644
--- a/tests/auto/tools/qmakelib/evaltest.cpp
+++ b/tests/auto/tools/qmakelib/evaltest.cpp
@@ -2225,6 +2225,44 @@ void tst_qmakelib::addTestFunctions(const QString &qindir)
<< ""
<< true;
+ QTest::newRow("versionAtLeast(): true")
+ << "VAR = 1.2.3\nversionAtLeast(VAR, 1.2.3): OK = 1"
+ << "OK = 1"
+ << ""
+ << true;
+
+ QTest::newRow("versionAtLeast(): false")
+ << "VAR = 1.2.2\nversionAtLeast(VAR, 1.2.3): OK = 1"
+ << "OK = UNDEF"
+ << ""
+ << true;
+
+ QTest::newRow("versionAtLeast(): bad number of arguments")
+ << "versionAtLeast(1): OK = 1\nversionAtLeast(1, 2, 3): OK = 1"
+ << "OK = UNDEF"
+ << "##:1: versionAtLeast(variable, versionNumber) requires two arguments.\n"
+ "##:2: versionAtLeast(variable, versionNumber) requires two arguments."
+ << true;
+
+ QTest::newRow("versionAtMost(): true")
+ << "VAR = 1.2.3\nversionAtMost(VAR, 1.2.3): OK = 1"
+ << "OK = 1"
+ << ""
+ << true;
+
+ QTest::newRow("versionAtMost(): false")
+ << "VAR = 1.2.3\nversionAtMost(VAR, 1.2.2): OK = 1"
+ << "OK = UNDEF"
+ << ""
+ << true;
+
+ QTest::newRow("versionAtMost(): bad number of arguments")
+ << "versionAtMost(1): OK = 1\nversionAtMost(1, 2, 3): OK = 1"
+ << "OK = UNDEF"
+ << "##:1: versionAtMost(variable, versionNumber) requires two arguments.\n"
+ "##:2: versionAtMost(variable, versionNumber) requires two arguments."
+ << true;
+
QTest::newRow("clear(): top-level")
<< "VAR = there\nclear(VAR): OK = 1"
<< "OK = 1\nVAR ="