Skip to content

bug(tooling): wrong solc version might be used for static tests #1512

@felix314159

Description

@felix314159

What is the context of this problem?

When trying to fill certain static tests using e.g. uv run fill -k "MCOPY_memory_expansion_costFiller" --fill-static-tests --evm-bin=/home/$USER/Documents/evmone/build/bin/evmone-t8n -vv -s a different solc version might be used than intended. This matters because I can fill these tests with solc 0.8.24 but it fails to fill with solc 0.8.29 (there are good reasons for this but this is not the scope of this issue).

How to reproduce the issue?

Put the solc 0.8.29 binary to .venv/bin/solc and ensure it has +x permission. Now ensure your config is to use 0.8.24 with uv run solc-select use 0.8.24 (you might have to install it first if you have not done so already). If you run uv run solc-select versions it should tell you: 0.8.24 (current, ...). Now run the fill command shown above. It will log that solc 0.8.24 is used (both in terminal and in html report) but in fact it uses the 0.8.29 binary, this can be detected e.g. by modifying './src/ethereum_test_specs/static_state/common/compile_yul.py' with sth like

    result2 = subprocess.run(
        ["solc", "--version"],
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT,
        text=True,
        check=True,
    )

    print(f"\nsolc version check: {result2.stdout}")

What should the fix be?

solc-select must be enforced, it should not silently choose the solc binary from .venv/bin/. The logging must be consistent with what is actually being used.

Metadata

Metadata

Assignees

No one assigned

    Labels

    scope:toolingScope: Python tools (uv, ruff, tox,...)type:bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions