mirror of https://github.com/crytic/slither
Merge pull request #714 from NatalieChin80/dev-test-boolean-equality
Added tests for boolean equality detectorpull/721/head
commit
7f8ad666bc
@ -0,0 +1,27 @@ |
|||||||
|
contract MyConc { |
||||||
|
function bad0(bool foo) public pure returns (bool) { |
||||||
|
if (foo) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
function bad1(bool b) public pure returns (bool) { |
||||||
|
return (b == true); |
||||||
|
} |
||||||
|
|
||||||
|
function bad2(bool x, uint8 y) public pure returns (bool) { |
||||||
|
if (x == (y > 0)) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function bad3() public pure returns (bool) { |
||||||
|
uint256 a; |
||||||
|
if (a == 10) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function good(uint8 a) public pure returns (bool) { |
||||||
|
return a >= 1; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,170 @@ |
|||||||
|
[ |
||||||
|
[ |
||||||
|
{ |
||||||
|
"elements": [ |
||||||
|
{ |
||||||
|
"type": "function", |
||||||
|
"name": "bad1", |
||||||
|
"source_mapping": { |
||||||
|
"start": 139, |
||||||
|
"length": 84, |
||||||
|
"filename_used": "/GENERIC_PATH", |
||||||
|
"filename_relative": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
7, |
||||||
|
8, |
||||||
|
9 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 6 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 0, |
||||||
|
"length": 578, |
||||||
|
"filename_used": "/GENERIC_PATH", |
||||||
|
"filename_relative": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
1, |
||||||
|
2, |
||||||
|
3, |
||||||
|
4, |
||||||
|
5, |
||||||
|
6, |
||||||
|
7, |
||||||
|
8, |
||||||
|
9, |
||||||
|
10, |
||||||
|
11, |
||||||
|
12, |
||||||
|
13, |
||||||
|
14, |
||||||
|
15, |
||||||
|
16, |
||||||
|
17, |
||||||
|
18, |
||||||
|
19, |
||||||
|
20, |
||||||
|
21, |
||||||
|
22, |
||||||
|
23, |
||||||
|
24, |
||||||
|
25, |
||||||
|
26, |
||||||
|
27, |
||||||
|
28 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 0 |
||||||
|
} |
||||||
|
}, |
||||||
|
"signature": "bad1(bool)" |
||||||
|
} |
||||||
|
}, |
||||||
|
{ |
||||||
|
"type": "node", |
||||||
|
"name": "(b == true)", |
||||||
|
"source_mapping": { |
||||||
|
"start": 198, |
||||||
|
"length": 18, |
||||||
|
"filename_used": "/GENERIC_PATH", |
||||||
|
"filename_relative": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
8 |
||||||
|
], |
||||||
|
"starting_column": 9, |
||||||
|
"ending_column": 27 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "function", |
||||||
|
"name": "bad1", |
||||||
|
"source_mapping": { |
||||||
|
"start": 139, |
||||||
|
"length": 84, |
||||||
|
"filename_used": "/GENERIC_PATH", |
||||||
|
"filename_relative": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
7, |
||||||
|
8, |
||||||
|
9 |
||||||
|
], |
||||||
|
"starting_column": 5, |
||||||
|
"ending_column": 6 |
||||||
|
}, |
||||||
|
"type_specific_fields": { |
||||||
|
"parent": { |
||||||
|
"type": "contract", |
||||||
|
"name": "MyConc", |
||||||
|
"source_mapping": { |
||||||
|
"start": 0, |
||||||
|
"length": 578, |
||||||
|
"filename_used": "/GENERIC_PATH", |
||||||
|
"filename_relative": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"filename_absolute": "/GENERIC_PATH", |
||||||
|
"filename_short": "tests/detectors/boolean-constant-equality/boolean-constant-equality.sol", |
||||||
|
"is_dependency": false, |
||||||
|
"lines": [ |
||||||
|
1, |
||||||
|
2, |
||||||
|
3, |
||||||
|
4, |
||||||
|
5, |
||||||
|
6, |
||||||
|
7, |
||||||
|
8, |
||||||
|
9, |
||||||
|
10, |
||||||
|
11, |
||||||
|
12, |
||||||
|
13, |
||||||
|
14, |
||||||
|
15, |
||||||
|
16, |
||||||
|
17, |
||||||
|
18, |
||||||
|
19, |
||||||
|
20, |
||||||
|
21, |
||||||
|
22, |
||||||
|
23, |
||||||
|
24, |
||||||
|
25, |
||||||
|
26, |
||||||
|
27, |
||||||
|
28 |
||||||
|
], |
||||||
|
"starting_column": 1, |
||||||
|
"ending_column": 0 |
||||||
|
} |
||||||
|
}, |
||||||
|
"signature": "bad1(bool)" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
], |
||||||
|
"description": "MyConc.bad1(bool) (tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#7-9) compares to a boolean constant:\n\t-(b == true) (tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#8)\n", |
||||||
|
"markdown": "[MyConc.bad1(bool)](tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#L7-L9) compares to a boolean constant:\n\t-[(b == true)](tests/detectors/boolean-constant-equality/boolean-constant-equality.sol#L8)\n", |
||||||
|
"id": "4a53e773c88b730f07c2e4106545df03b44679c56ee0d9dbd75dca010320e69c", |
||||||
|
"check": "boolean-equal", |
||||||
|
"impact": "Informational", |
||||||
|
"confidence": "High" |
||||||
|
} |
||||||
|
] |
||||||
|
] |
Loading…
Reference in new issue