improved testing of calculations in valueflow
This commit is contained in:
parent
8d3b5bb95e
commit
f3b5857b96
|
@ -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"));
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {}"
|
||||
|
|
Loading…
Reference in New Issue