Skip to content

fix(unittests): arm workaround for running unit tests (Issue #1682) #1684

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

felix314159
Copy link
Collaborator

@felix314159 felix314159 commented May 30, 2025

🗒️ Description

More info here. Even with these changes (and manually having to place arm-compatible solc binaries inside of .tox/pytest/.solc-select/artifacts/) I still fail 10 tests:

FAILED src/cli/tests/test_pytest_fill_command.py::TestHtmlReportFlags::test_fill_default_output_options - AssertionError: assert <ExitCode.INTERRUPTED: 2> == <ExitCode.OK: 0>
 +  where <ExitCode.INTERRUPTED: 2> = <Result SystemExit(<ExitCode.INTERRUPTED: 2>)>.exit_code
 +  and   <ExitCode.OK: 0> = <enum 'ExitCode'>.OK
 +    where <enum 'ExitCode'> = pytest.ExitCode
FAILED src/cli/tests/test_pytest_fill_command.py::TestHtmlReportFlags::test_fill_no_html_option - AssertionError: assert <ExitCode.INTERRUPTED: 2> == <ExitCode.OK: 0>
 +  where <ExitCode.INTERRUPTED: 2> = <Result SystemExit(<ExitCode.INTERRUPTED: 2>)>.exit_code
 +  and   <ExitCode.OK: 0> = <enum 'ExitCode'>.OK
 +    where <enum 'ExitCode'> = pytest.ExitCode
FAILED src/cli/tests/test_pytest_fill_command.py::TestHtmlReportFlags::test_fill_html_option - AssertionError: assert <ExitCode.INTERRUPTED: 2> == <ExitCode.OK: 0>
 +  where <ExitCode.INTERRUPTED: 2> = <Result SystemExit(<ExitCode.INTERRUPTED: 2>)>.exit_code
 +  and   <ExitCode.OK: 0> = <enum 'ExitCode'>.OK
 +    where <enum 'ExitCode'> = pytest.ExitCode
FAILED src/cli/tests/test_pytest_fill_command.py::TestHtmlReportFlags::test_fill_output_option - AssertionError: assert <ExitCode.INTERRUPTED: 2> == <ExitCode.OK: 0>
 +  where <ExitCode.INTERRUPTED: 2> = <Result SystemExit(<ExitCode.INTERRUPTED: 2>)>.exit_code
 +  and   <ExitCode.OK: 0> = <enum 'ExitCode'>.OK
 +    where <enum 'ExitCode'> = pytest.ExitCode
FAILED src/cli/tests/test_pytest_fill_command.py::TestHtmlReportFlags::test_fill_html_and_output_options - AssertionError: assert <ExitCode.INTERRUPTED: 2> == <ExitCode.OK: 0>
 +  where <ExitCode.INTERRUPTED: 2> = <Result SystemExit(<ExitCode.INTERRUPTED: 2>)>.exit_code
 +  and   <ExitCode.OK: 0> = <enum 'ExitCode'>.OK
 +    where <enum 'ExitCode'> = pytest.ExitCode
FAILED src/pytest_plugins/solc/tests/test_solc.py::TestSolcVersion::test_solc_versions_flag[0.8.21] - ValueError: Pytest terminal summary report not found
FAILED src/pytest_plugins/solc/tests/test_solc.py::TestSolcVersion::test_solc_versions_flag[0.8.26] - ValueError: Pytest terminal summary report not found
FAILED src/pytest_plugins/solc/tests/test_solc.py::test_solc_version_too_old - assert 'Unsupported solc version' in "Exit: Version None does not match solc_version 0.8.19 and since solc-select currently does not support ARM linux you ...ually move the binary to .venv/.solc-select/artifacts/solc-x.y.z/solc-x.y.z, then run 'uv run solc-select use <x.y.z>'"
 +  where "Exit: Version None does not match solc_version 0.8.19 and since solc-select currently does not support ARM linux you ...ually move the binary to .venv/.solc-select/artifacts/solc-x.y.z/solc-x.y.z, then run 'uv run solc-select use <x.y.z>'" = <built-in method join of str object at 0xefc17b61edb0>(["Exit: Version None does not match solc_version 0.8.19 and since solc-select currently does not support ARM linux you...ally move the binary to .venv/.solc-select/artifacts/solc-x.y.z/solc-x.y.z, then run 'uv run solc-select use <x.y.z>'"])
 +    where <built-in method join of str object at 0xefc17b61edb0> = '\n'.join
 +    and   ["Exit: Version None does not match solc_version 0.8.19 and since solc-select currently does not support ARM linux you...ally move the binary to .venv/.solc-select/artifacts/solc-x.y.z/solc-x.y.z, then run 'uv run solc-select use <x.y.z>'"] = <_pytest.pytester.LineMatcher object at 0xefc16d702580>.lines
 +      where <_pytest.pytester.LineMatcher object at 0xefc16d702580> = <RunResult ret=4 len(stdout.lines)=0 len(stderr.lines)=1 duration=1.30s>.stderr
FAILED src/pytest_plugins/solc/tests/test_solc.py::test_unknown_solc_version - assert "Unknown version '420.69.0'" in "Exit: Version None does not match solc_version 420.69.0 and since solc-select currently does not support ARM linux yo...ually move the binary to .venv/.solc-select/artifacts/solc-x.y.z/solc-x.y.z, then run 'uv run solc-select use <x.y.z>'"
FAILED src/pytest_plugins/solc/tests/test_solc.py::TestSolcBin::test_solc_bin - ValueError: Pytest terminal summary report not found
====================================================== 10 failed, 11 passed, 967 deselected, 45 warnings in 128.59s (0:02:08) =======================================================
pytest: exit 1 (131.00 seconds) /home/user/Documents/execution-spec-tests> pytest -c ./pytest-framework.ini -m run_in_serial pid=76083
  pytest: FAIL code 1 (182.86=setup[0.42]+cmd[0.06,51.38,131.00] seconds)
  evaluation failed :( (182.90 seconds)

🔗 Related Issues

✅ Checklist

  • All: Set appropriate labels for the changes.
  • All: Considered squashing commits to improve commit history.
  • All: Added an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.
  • Tests: All converted JSON/YML tests from ethereum/tests/tests/static have been assigned @ported_from marker.
  • Tests: A PR with removal of converted JSON/YML blockchain tests from ethereum/tests have been opened.
  • Tests: Included the type and version of evm t8n tool used to locally execute test cases: e.g., ref with commit hash or geth 1.13.1-stable-3f40e65.
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.
  • Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.

Comment on lines +33 to +40
# determine solc version used by solc-select
# get eest root folder path
eest_root: Path = get_eest_root_folder()
# get path of solc-select global-version file (stores currently in use solc version)
solc_version_file_path = eest_root / ".venv" / ".solc-select" / "global-version"
# read this file if it exists
if solc_version_file_path.exists():
solc_version_in_use = Version.parse(solc_version_file_path.read_text())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you try to directly import solc-select and use the current_version method to see if it resolves to the global-version in this case?

from solc_select import solc_select
...
ss.current_version()

returns in my case:

('0.8.24', '/path/to/execution-spec-tests/.venv/.solc-select/global-version')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants