mirror of https://github.com/crytic/slither
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.9 KiB
47 lines
1.9 KiB
2 years ago
|
from pathlib import Path
|
||
|
import shutil
|
||
|
|
||
|
import pytest
|
||
|
from slither import Slither
|
||
|
|
||
|
# NB: read tests/source_unit/README.md for setup before using this test
|
||
|
|
||
|
|
||
|
TEST_DATA_DIR = Path(__file__).resolve().parent / "test_data"
|
||
|
|
||
|
foundry_available = shutil.which("forge") is not None
|
||
|
project_ready = Path(TEST_DATA_DIR, "test_source_unit/lib/forge-std").exists()
|
||
|
|
||
|
|
||
|
@pytest.mark.skipif(
|
||
|
not foundry_available or not project_ready, reason="requires Foundry and project setup"
|
||
|
)
|
||
|
def test_contract_info() -> None:
|
||
|
slither = Slither(Path(TEST_DATA_DIR, "test_source_unit").as_posix())
|
||
|
|
||
|
assert len(slither.compilation_units) == 1
|
||
|
compilation_unit = slither.compilation_units[0]
|
||
|
|
||
|
for source_unit in compilation_unit.crytic_compile_compilation_unit.source_units.values():
|
||
|
source_unit.remove_metadata()
|
||
|
|
||
|
counter_sol = compilation_unit.crytic_compile.filename_lookup(
|
||
|
Path(TEST_DATA_DIR, "test_source_unit/src/Counter.sol").as_posix()
|
||
|
)
|
||
|
assert (
|
||
|
compilation_unit.scopes[counter_sol].bytecode_init(
|
||
|
compilation_unit.crytic_compile_compilation_unit, "Counter"
|
||
|
)
|
||
|
== "608060405234801561001057600080fd5b5060f78061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80633fb5c1cb1460415780638381f58a146053578063d09de08a14606d575b600080fd5b6051604c3660046083565b600055565b005b605b60005481565b60405190815260200160405180910390f35b6051600080549080607c83609b565b9190505550565b600060208284031215609457600080fd5b5035919050565b60006001820160ba57634e487b7160e01b600052601160045260246000fd5b506001019056fe"
|
||
|
)
|
||
|
|
||
|
counter2_sol = compilation_unit.crytic_compile.filename_lookup(
|
||
|
"tests/source_unit/src/Counter2.sol"
|
||
|
)
|
||
|
assert (
|
||
|
compilation_unit.scopes[counter2_sol].bytecode_init(
|
||
|
compilation_unit.crytic_compile_compilation_unit, "Counter"
|
||
|
)
|
||
|
== "6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfe"
|
||
|
)
|