Skip to content
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

Eof/valdiation fixes #7405

Merged
merged 9 commits into from
Sep 10, 2024

Conversation

shemnon
Copy link

@shemnon shemnon commented Sep 9, 2024

Changes

Fixes several small EOF validation testing failures

  • Types of changes
  • Don't allow out of order subcontainer header
  • Require full length data header except in EOFCREATE usage.
  • Don't allow repeat header sections
  • Reject containers with excess data
  • Check container sizes
  • Require code sections to end with terminal operator
  • Prohibit STATICALL in EOF container code

Types of changes

What types of changes does your code introduce?

  • Bugfix (a non-breaking change that fixes an issue)
  • New feature (a non-breaking change that adds functionality)
  • Breaking change (a change that causes existing functionality not to work as expected)
  • Optimization
  • Refactoring
  • Documentation update
  • Build-related changes
  • Other: Description

Testing

Requires testing

  • Yes
  • No

If yes, did you write tests?

  • Yes
  • No

Notes on testing

Testing is handled by Ethereum Execution Specification Tests, which are in an external repo.

@shemnon
Copy link
Author

shemnon commented Sep 9, 2024

@benaadams

@shemnon
Copy link
Author

shemnon commented Sep 9, 2024

At least two (large) issues remain:

  • Validating subcontainers, but in context of how they are used (EOFCREATE reference containers are Initcode, RETURNCONTRACT are runtime, rather than index based)
  • Detecting jumps into immediate data

@benaadams
Copy link
Member

@shemnon after updating tests on feature/evm/eof branch to v1.0.9 nothing fails in this area; is that failure in our testing progress or tests not yet merged?

@shemnon
Copy link
Author

shemnon commented Sep 9, 2024

I'm using raw EEST fills, there are tests that are not yet in the released. I'll update my eof test tracker today and have it ready before start of europe business.

@benaadams
Copy link
Member

I'm using raw EEST fills, there are tests that are not yet in the released. I'll update my eof test tracker today and have it ready before start of europe business.

I'll wait on merge of this one then, to merge the new tests to the base branch to make sure we are picking up the failures

@shemnon
Copy link
Author

shemnon commented Sep 9, 2024

The automated EOF tests are not being asserted.

public void Test(EofTest test) => RunTest(test);

Should be

    public void Test(EofTest test) => Assert.That(RunTest(test));

@shemnon
Copy link
Author

shemnon commented Sep 9, 2024

Fixtures for EEST main as of 2024-09-09
Note however, 72 of 76 failing tests are part of fixtures v1.0.9

@benaadams
Copy link
Member

The automated EOF tests are not being asserted.

Ah ha, good spot!

Thank you very much for your contribution @shemnon

@benaadams benaadams merged commit 42f502a into NethermindEth:feature/evm/eof Sep 10, 2024
58 of 60 checks passed
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