diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2021-02-17 20:38:04 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-02-19 00:29:46 +0000 |
commit | e9e5f26c58d26a07e8e731886029fbe3bb21b98d (patch) | |
tree | bafb93a04cc91307a603d82878239c1a78c4aebb /tests | |
parent | e09acc38d3af64c2136ee8b6ab4f01a83492ba17 (diff) |
QJSPrimitiveValue: Implement modulo operator
The modulo operator has special semantics in JavaScript. We need to
mirror those.
Task-number: QTBUG-84369
Change-Id: I5a4d63a01e232686832c83f2def0faf57e7359c2
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 84cf29933cee44e09590fc89ae800dd453f664ca)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qjsprimitivevalue/tst_qjsprimitivevalue.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/auto/qml/qjsprimitivevalue/tst_qjsprimitivevalue.cpp b/tests/auto/qml/qjsprimitivevalue/tst_qjsprimitivevalue.cpp index 5189ea4b94..4fe68e1f73 100644 --- a/tests/auto/qml/qjsprimitivevalue/tst_qjsprimitivevalue.cpp +++ b/tests/auto/qml/qjsprimitivevalue/tst_qjsprimitivevalue.cpp @@ -97,7 +97,7 @@ do {\ QVERIFY2(condition, qPrintable(expression + " -> " + js.toString())) enum Operator { - Add, Sub, Mul, Div, Eq, SEq, NEq, SNEq, GT, LT, GEq, LEq + Add, Sub, Mul, Div, Eq, SEq, NEq, SNEq, GT, LT, GEq, LEq, Mod }; QString toString(Operator op) { @@ -114,6 +114,7 @@ QString toString(Operator op) { case LT: return "<"; case GEq: return ">="; case LEq: return "<="; + case Mod: return "%"; } Q_UNREACHABLE(); @@ -149,6 +150,8 @@ void doTestOperator(QJSEngine *engine, LHS lhs, RHS rhs) result = lhs >= rhs; else if constexpr (op == LEq) result = lhs <= rhs; + else if constexpr (op == Mod) + result = lhs % rhs; else QFAIL("Unkonwn operator"); @@ -199,6 +202,7 @@ void doTestForAllOperators(QJSEngine *engine, LHS lhs, RHS rhs) doTestOperator<LHS, RHS, QJSPrimitiveValue, Sub>(engine, lhs, rhs); doTestOperator<LHS, RHS, QJSPrimitiveValue, Mul>(engine, lhs, rhs); doTestOperator<LHS, RHS, QJSPrimitiveValue, Div>(engine, lhs, rhs); + doTestOperator<LHS, RHS, QJSPrimitiveValue, Mod>(engine, lhs, rhs); doTestOperator<LHS, RHS, bool, Eq>(engine, lhs, rhs); doTestOperator<LHS, RHS, bool, SEq>(engine, lhs, rhs); doTestOperator<LHS, RHS, bool, NEq>(engine, lhs, rhs); |