diff --git a/test/testmathlib.cpp b/test/testmathlib.cpp index 4a855c5cb..1b61e643a 100644 --- a/test/testmathlib.cpp +++ b/test/testmathlib.cpp @@ -569,8 +569,8 @@ private: ASSERT_EQUALS(false, MathLib::isFloatHex("+0x")); ASSERT_EQUALS(false, MathLib::isFloatHex("-0x")); ASSERT_EQUALS(false, MathLib::isFloatHex("0x")); - ASSERT_EQUALS(false, MathLib::isFloatHex("0x.")); - ASSERT_EQUALS(false, MathLib::isFloatHex("0XP")); + ASSERT_EQUALS(false, MathLib::isFloatHex("0x.")); + ASSERT_EQUALS(false, MathLib::isFloatHex("0XP")); ASSERT_EQUALS(false, MathLib::isFloatHex("0xx")); } diff --git a/test/testvalueflow.cpp b/test/testvalueflow.cpp index d3942e0d4..32820ee54 100644 --- a/test/testvalueflow.cpp +++ b/test/testvalueflow.cpp @@ -221,6 +221,20 @@ private: void valueFlowCalculations() { const char *code; + // Different operators + ASSERT_EQUALS(5, valueOfTok("3 + (a ? b : 2);", "+").intvalue); + ASSERT_EQUALS(1, valueOfTok("3 - (a ? b : 2);", "-").intvalue); + ASSERT_EQUALS(6, valueOfTok("3 * (a ? b : 2);", "*").intvalue); + ASSERT_EQUALS(6, valueOfTok("13 / (a ? b : 2);", "/").intvalue); + ASSERT_EQUALS(1, valueOfTok("13 % (a ? b : 2);", "%").intvalue); + ASSERT_EQUALS(0, valueOfTok("3 == (a ? b : 2);", "==").intvalue); + ASSERT_EQUALS(1, valueOfTok("3 != (a ? b : 2);", "!=").intvalue); + ASSERT_EQUALS(1, valueOfTok("3 > (a ? b : 2);", ">").intvalue); + ASSERT_EQUALS(1, valueOfTok("3 >= (a ? b : 2);", ">=").intvalue); + ASSERT_EQUALS(0, valueOfTok("3 < (a ? b : 2);", "<").intvalue); + ASSERT_EQUALS(0, valueOfTok("3 <= (a ? b : 2);", "<=").intvalue); + + // calculation using 1,2 variables/values code = "void f(int x) {\n" " a = x+456;\n" " if (x==123) {}"