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