From 64a5087df7896524bf6af30067f442d1fc8458bc Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Wed, 15 Feb 2012 10:27:44 +1000 Subject: Set the type for unary expressions in v4. Previously unary expressions were being discarded because the type was not set. Also add tests verifying the results. Change-Id: Icbb493fbb6f036e59c8a4a1fe232c118312a63a5 Reviewed-by: Chris Adams Reviewed-by: Roberto Raggi --- tests/auto/declarative/v4/data/unaryMinus.qml | 6 ++++ tests/auto/declarative/v4/data/unaryPlus.qml | 24 +++++++++++++++ tests/auto/declarative/v4/tst_v4.cpp | 44 +++++++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 tests/auto/declarative/v4/data/unaryPlus.qml (limited to 'tests') diff --git a/tests/auto/declarative/v4/data/unaryMinus.qml b/tests/auto/declarative/v4/data/unaryMinus.qml index 01fa515d6f..410654fc3c 100644 --- a/tests/auto/declarative/v4/data/unaryMinus.qml +++ b/tests/auto/declarative/v4/data/unaryMinus.qml @@ -7,12 +7,18 @@ Item { property int test4: -i1.p1 property real test5: -i1.p3 property int test6: -i1.p3 + property real test7: -i1.p4 + property int test8: -i1.p4 + property real test9: -i1.p5 + property int test10: -i1.p5 QtObject { id: i1 property real p1: -3.7 property int p2: 18 property real p3: -3.3 + property int p4: -7 + property real p5: 4.4 } } diff --git a/tests/auto/declarative/v4/data/unaryPlus.qml b/tests/auto/declarative/v4/data/unaryPlus.qml new file mode 100644 index 0000000000..cd5315a7cc --- /dev/null +++ b/tests/auto/declarative/v4/data/unaryPlus.qml @@ -0,0 +1,24 @@ +import QtQuick 2.0 + +Item { + property real test1: +i1.p2 + property int test2: +i1.p2 + property real test3: +i1.p1 + property int test4: +i1.p1 + property real test5: +i1.p3 + property int test6: +i1.p3 + property real test7: +i1.p4 + property int test8: +i1.p4 + property real test9: +i1.p5 + property int test10: +i1.p5 + + QtObject { + id: i1 + property real p1: -3.7 + property int p2: 18 + property real p3: -3.3 + property int p4: -7 + property real p5: 4.4 + } +} + diff --git a/tests/auto/declarative/v4/tst_v4.cpp b/tests/auto/declarative/v4/tst_v4.cpp index 8a550a5c2d..927dc0f082 100644 --- a/tests/auto/declarative/v4/tst_v4.cpp +++ b/tests/auto/declarative/v4/tst_v4.cpp @@ -71,6 +71,8 @@ private slots: void qtbug_21883(); void qtbug_22816(); void stringComparison(); + void unaryMinus(); + void unaryPlus(); private: QDeclarativeEngine engine; @@ -304,6 +306,48 @@ void tst_v4::stringComparison() delete o; } +void tst_v4::unaryMinus() +{ + QDeclarativeComponent component(&engine, testFileUrl("unaryMinus.qml")); + + QObject *o = component.create(); + QVERIFY(o != 0); + + QCOMPARE(o->property("test1").toReal(), qreal(-18)); + QCOMPARE(o->property("test2").toInt(), -18); + QCOMPARE(o->property("test3").toReal(), qreal(3.7)); + QCOMPARE(o->property("test4").toInt(), 4); + QCOMPARE(o->property("test5").toReal(), qreal(3.3)); + QCOMPARE(o->property("test6").toInt(), 3); + QCOMPARE(o->property("test7").toReal(), qreal(7)); + QCOMPARE(o->property("test8").toInt(), 7); + QCOMPARE(o->property("test9").toReal(), qreal(-4.4)); + QCOMPARE(o->property("test10").toInt(), -4); + + delete o; +} + +void tst_v4::unaryPlus() +{ + QDeclarativeComponent component(&engine, testFileUrl("unaryPlus.qml")); + + QObject *o = component.create(); + QVERIFY(o != 0); + + QCOMPARE(o->property("test1").toReal(), qreal(18)); + QCOMPARE(o->property("test2").toInt(), 18); + QCOMPARE(o->property("test3").toReal(), qreal(-3.7)); + QCOMPARE(o->property("test4").toInt(), -4); + QCOMPARE(o->property("test5").toReal(), qreal(-3.3)); + QCOMPARE(o->property("test6").toInt(), -3); + QCOMPARE(o->property("test7").toReal(), qreal(-7)); + QCOMPARE(o->property("test8").toInt(), -7); + QCOMPARE(o->property("test9").toReal(), qreal(4.4)); + QCOMPARE(o->property("test10").toInt(), 4); + + delete o; +} + QTEST_MAIN(tst_v4) #include "tst_v4.moc" -- cgit v1.2.3