summaryrefslogtreecommitdiffstats
path: root/tests/auto/tools/qmakelib
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-05-18 16:35:01 +0200
committerOswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>2016-05-25 06:19:11 +0000
commite70330f99e53bd34a518879a0a4c68bc7cb03949 (patch)
treec6dd095348a79677e87f201649b48c590268a740 /tests/auto/tools/qmakelib
parentba38926bbfe433344435f2a2cd08bd7e4b157153 (diff)
add $$str_member() function
just like $$member(), but operates on a string value rather than a list variable. it is the swiss army knife of cutting, providing equivalents of left(), right(), mid() and reverse() all in one. [ChangeLog][qmake] Added $$str_member() function. Change-Id: I7c7c6c971db402fff41b428d32a4451f45400728 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Diffstat (limited to 'tests/auto/tools/qmakelib')
-rw-r--r--tests/auto/tools/qmakelib/evaltest.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/auto/tools/qmakelib/evaltest.cpp b/tests/auto/tools/qmakelib/evaltest.cpp
index f12b11261a..03fbf96a9f 100644
--- a/tests/auto/tools/qmakelib/evaltest.cpp
+++ b/tests/auto/tools/qmakelib/evaltest.cpp
@@ -718,6 +718,49 @@ void tst_qmakelib::addReplaceFunctions(const QString &qindir)
<< "##:2: member() argument 2 (start) '4..foo' invalid."
<< true;
+ // The argument processing is shared with $$member(), so some tests are skipped.
+ QTest::newRow("$$str_member(): empty")
+ << "VAR = $$str_member()"
+ << "VAR ="
+ << ""
+ << true;
+
+ QTest::newRow("$$str_member(): too short")
+ << "VAR = $$str_member(string_value, 7, 12)"
+ << "VAR =" // this is actually kinda stupid
+ << ""
+ << true;
+
+ QTest::newRow("$$str_member(): ok")
+ << "VAR = $$str_member(string_value, 7, 11)"
+ << "VAR = value"
+ << ""
+ << true;
+
+ QTest::newRow("$$str_member(): ok (default start)")
+ << "VAR = $$str_member(string_value)"
+ << "VAR = s"
+ << ""
+ << true;
+
+ QTest::newRow("$$str_member(): ok (default end)")
+ << "VAR = $$str_member(string_value, 7)"
+ << "VAR = v"
+ << ""
+ << true;
+
+ QTest::newRow("$$str_member(): negative")
+ << "VAR = $$str_member(string_value, -5, -3)"
+ << "VAR = val"
+ << ""
+ << true;
+
+ QTest::newRow("$$str_member(): inverse")
+ << "VAR = $$str_member(string_value, -2, 1)"
+ << "VAR = ulav_gnirt"
+ << ""
+ << true;
+
QTest::newRow("$$first(): empty")
<< "IN = \nVAR = $$first(IN)"
<< "VAR ="