diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 92549ce8..6cedd199 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -40,4 +40,4 @@ jobs: pip install solc-select - name: Run Tests run: | - pytest tests/test_metadata.py + pytest tests diff --git a/crytic_compile/utils/naming.py b/crytic_compile/utils/naming.py index 7f5d1398..b062dd35 100644 --- a/crytic_compile/utils/naming.py +++ b/crytic_compile/utils/naming.py @@ -146,7 +146,7 @@ def convert_filename( if elements[0] == "/" or elements[0] == "\\": elements = elements[1:] # remove '/' elements[0] = elements[0] + ":/" # add :/ - filename = Path(*elements) + filename = Path(*elements).as_posix_path() else: filename = Path(filename_txt) @@ -188,10 +188,11 @@ def convert_filename( short = relative short = relative_to_short(short) - + # Starting with v0.8.8 (https://github.com/ethereum/solidity/pull/11545), solc normalizes the paths to not include the drive on Windows, + # so it's important we use posix path here to avoid issues with the path comparison. return Filename( - absolute=str(absolute), + absolute=absolute.as_posix(), relative=relative.as_posix(), short=short.as_posix(), - used=str(used_filename), + used=Path(used_filename).as_posix(), ) diff --git a/tests/call_to_variable-all.sol-0.5.8-legacy.zip b/tests/call_to_variable-all.sol-0.5.8-legacy.zip new file mode 100644 index 00000000..fd360787 Binary files /dev/null and b/tests/call_to_variable-all.sol-0.5.8-legacy.zip differ