aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2011-12-21 16:34:36 +0000
committerQt by Nokia <qt-info@nokia.com>2011-12-21 18:42:48 +0100
commitb6c8497cdf070c8404a1f3784c4ee6df191bd546 (patch)
tree029a5ce39adbad2c9eb1213e57d38fecdd9e6041 /tests
parent8249c72213bc7d212c05aa086b3145a5742706a3 (diff)
Detect and optimize qsTr() and qsTrId() bindings
As these two are frequently used with constants, we can detect them in the compiler, and run the appropriate C++ functions directly in the VME. This saves pointlessly creating and running bindings. Change-Id: I148a150400c13fda7955949453405202f18b1a6b Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp20
-rw-r--r--tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml1
-rw-r--r--tests/auto/declarative/qdeclarativetranslation/data/translation.qml4
-rw-r--r--tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp9
4 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
index ebe9253bae..f300fe07cd 100644
--- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
+++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
@@ -450,6 +450,24 @@ void tst_qdeclarativeinstruction::dump()
data->addInstruction(i);
}
+ {
+ QDeclarativeCompiledData::Instruction::StoreTrString i;
+ i.propertyIndex = 99;
+ i.context = 3;
+ i.text = 14;
+ i.comment = 14;
+ i.n = 2;
+ data->addInstruction(i);
+ }
+
+ {
+ QDeclarativeCompiledData::Instruction::StoreTrIdString i;
+ i.propertyIndex = 78;
+ i.text = 7;
+ i.n = -1;
+ data->addInstruction(i);
+ }
+
QStringList expect;
expect
<< "Index\tOperation\t\tData1\tData2\tData3\tComments"
@@ -505,6 +523,8 @@ void tst_qdeclarativeinstruction::dump()
<< "48\t\tSTORE_VARIANT_INTEGER\t\t32\t11"
<< "49\t\tSTORE_VARIANT_DOUBLE\t\t19\t33.7"
<< "50\t\tDONE"
+ << "51\t\tSTORE_TR_STRING\t99\t3\t14\t14\t2"
+ << "52\t\tSTORE_TRID_STRING\t78\t7\t-1"
<< "-------------------------------------------------------------------------------";
messages = QStringList();
diff --git a/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml b/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml
index 4a5498281a..b128a1e578 100644
--- a/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml
+++ b/tests/auto/declarative/qdeclarativetranslation/data/idtranslation.qml
@@ -4,4 +4,5 @@ QtObject {
property string _idTranslation2: QT_TRID_NOOP("qtn_hello_world")
property string idTranslation: qsTrId("qtn_hello_world")
property string idTranslation2: qsTrId(_idTranslation2)
+ property string idTranslation3: if (1) qsTrId("qtn_hello_world")
}
diff --git a/tests/auto/declarative/qdeclarativetranslation/data/translation.qml b/tests/auto/declarative/qdeclarativetranslation/data/translation.qml
index 89db1d2262..8435bedb28 100644
--- a/tests/auto/declarative/qdeclarativetranslation/data/translation.qml
+++ b/tests/auto/declarative/qdeclarativetranslation/data/translation.qml
@@ -3,9 +3,11 @@ import QtQuick 2.0
QtObject {
property string basic: qsTr("hello")
property string basic2: qsTranslate("CustomContext", "goodbye")
+ property string basic3: if (1) qsTr("hello")
property string disambiguation: qsTr("hi", "informal 'hello'")
property string disambiguation2: qsTranslate("CustomContext", "see ya", "informal 'goodbye'")
+ property string disambiguation3: if (1) qsTr("hi", "informal 'hello'")
property string _noop: QT_TR_NOOP("hello")
property string _noop2: QT_TRANSLATE_NOOP("CustomContext", "goodbye")
@@ -13,5 +15,7 @@ QtObject {
property string noop2: qsTranslate("CustomContext", _noop2)
property string singular: qsTr("%n duck(s)", "", 1)
+ property string singular2: if (1) qsTr("%n duck(s)", "", 1)
property string plural: qsTr("%n duck(s)", "", 2)
+ property string plural2: if (1) qsTr("%n duck(s)", "", 2)
}
diff --git a/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp b/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp
index 12079b1432..08c55dc5f2 100644
--- a/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp
+++ b/tests/auto/declarative/qdeclarativetranslation/tst_qdeclarativetranslation.cpp
@@ -70,12 +70,16 @@ void tst_qdeclarativetranslation::translation()
QCOMPARE(object->property("basic").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("basic2").toString(), QLatin1String("au revoir"));
+ QCOMPARE(object->property("basic3").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("disambiguation").toString(), QLatin1String("salut"));
QCOMPARE(object->property("disambiguation2").toString(), QString::fromUtf8("\xc3\xa0 plus tard"));
+ QCOMPARE(object->property("disambiguation3").toString(), QLatin1String("salut"));
QCOMPARE(object->property("noop").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("noop2").toString(), QLatin1String("au revoir"));
QCOMPARE(object->property("singular").toString(), QLatin1String("1 canard"));
+ QCOMPARE(object->property("singular2").toString(), QLatin1String("1 canard"));
QCOMPARE(object->property("plural").toString(), QLatin1String("2 canards"));
+ QCOMPARE(object->property("plural2").toString(), QLatin1String("2 canards"));
QCoreApplication::removeTranslator(&translator);
delete object;
@@ -94,6 +98,7 @@ void tst_qdeclarativetranslation::idTranslation()
QCOMPARE(object->property("idTranslation").toString(), QLatin1String("bonjour tout le monde"));
QCOMPARE(object->property("idTranslation2").toString(), QLatin1String("bonjour tout le monde"));
+ QCOMPARE(object->property("idTranslation3").toString(), QLatin1String("bonjour tout le monde"));
QCoreApplication::removeTranslator(&translator);
delete object;
@@ -112,12 +117,16 @@ void tst_qdeclarativetranslation::translationInQrc()
QCOMPARE(object->property("basic").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("basic2").toString(), QLatin1String("au revoir"));
+ QCOMPARE(object->property("basic3").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("disambiguation").toString(), QLatin1String("salut"));
QCOMPARE(object->property("disambiguation2").toString(), QString::fromUtf8("\xc3\xa0 plus tard"));
+ QCOMPARE(object->property("disambiguation3").toString(), QLatin1String("salut"));
QCOMPARE(object->property("noop").toString(), QLatin1String("bonjour"));
QCOMPARE(object->property("noop2").toString(), QLatin1String("au revoir"));
QCOMPARE(object->property("singular").toString(), QLatin1String("1 canard"));
+ QCOMPARE(object->property("singular2").toString(), QLatin1String("1 canard"));
QCOMPARE(object->property("plural").toString(), QLatin1String("2 canards"));
+ QCOMPARE(object->property("plural2").toString(), QLatin1String("2 canards"));
QCoreApplication::removeTranslator(&translator);
delete object;