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

Failing tests due to lack of implementation #27

Closed
soc1c opened this issue Aug 7, 2019 · 2 comments
Closed

Failing tests due to lack of implementation #27

soc1c opened this issue Aug 7, 2019 · 2 comments

Comments

@soc1c
Copy link
Contributor

soc1c commented Aug 7, 2019

So currently with state trie clearing implemented, all tests are passing except some that are intentionally skipped due to the functionality not implemented yet, or not planned to be implemented.

I will group each missing functionality with it's skipped tests:

Atlantis planned changes

EIP 214 - STATICCALL

  unsupportedDirs := map[string]bool{
     ...
    "stStaticCall":  true,
     ...
  }
skipTests["staticcall_createfails.json"] = "STATICCALL Not Implemented"

EIP 140 - REVERT

  unsupportedDirs := map[string]bool{
     ...
    "stRevertTest":  true,
     ...
  }
	skipTests["FailedCreateRevertsDeletion.json"] = "REVERT Not Implemented"
	skipTests["CreateOOGafterInitCodeRevert.json"] = "REVERT Not Implemented"
	skipTests["CreateOOGafterInitCodeRevert2.json"] = "REVERT Not Implemented"

EIP 211 - RETURNDATASIZE/ RETURNDATACOPY

  unsupportedDirs := map[string]bool{
     ...
    "stReturnDataTest":  true,
     ...
  }
	skipTests["CreateOOGafterInitCodeReturndataSize.json"] = "REVERT Not Implemented"
	skipTests["CreateOOGafterInitCodeReturndata2.json"] = "REVERT Not Implemented"

EIP 196/197/198 Precompiles (Maybe not all are planned to be completed)

  unsupportedDirs := map[string]bool{
     ...
    "stPreCompiledContracts":  true,
    "stPreCompiledContracts2": true,

    // And I am pretty sure these two because they reference the precompiles
    "stZeroKnowledge":         true,
    "stZeroKnowledge2":        true,
     ...
  }

EIP 170 Code size limit

  unsupportedDirs := map[string]bool{
     ...
    "stCodeSizeLimit":  true,
     ...
  }

All of the above skips should be removed when implemented in Atlantis

Non specific Atlantis skips:

EIP 684/689 ? Transaction collision updates

	skipTests["TransactionCollisionToEmptyButCode.json"] = "Not Implemented"
	skipTests["TransactionCollisionToEmpty.json"] = "Not Implemented"
	skipTests["TransactionCollisionToEmptyButNonce.json"] = "Not Implemented"
	skipTests["CreateCollisionToEmpty.json"] = "Not Implemented"
	skipTests["CreateHashCollision.json"] = "Not Implemented"
	skipTests["createJS_ExampleContract.json"] = "Not Implemented"

EIP 1014 Create2 (Agharta)

  unsupportedDirs := map[string]bool{
     ...
    "stCreate2":  true,
     ...
  }

Unknown test functionality skip:

		skipTests["CREATE_ContractRETURNBigOffset.json"] = "random unimplemented"

This one is not referenced anywhere and not implemented with an EIP. Byzantium (Atlantis) onwards specific tests so it includes a specification added that is not included in ETC. Best guess is that it has something to do with accounts/abi/abi.go or related files.

Random test skips:

	skipTests["randomStatetest642.json"] = "random unimplemented"
	skipTests["randomStatetest644.json"] = "random unimplemented"
	skipTests["randomStatetest645.json"] = "random unimplemented"
	skipTests["Opcodes_TransactionInit.json/Byzantium/37"] = "random unimplemented"
	skipTests["Opcodes_TransactionInit.json/Byzantium/38"] = "random unimplemented"
	skipTests["Opcodes_TransactionInit.json/Byzantium/125"] = "random unimplemented"
	skipTests["Opcodes_TransactionInit.json/Byzantium/126"] = "random unimplemented"

Assuming these are all due to the unimplemented Atlantis functionality, should be revisited on implementing each opcode or at the end of Atlantis implementation


Only remaining skips are relating to #35 (state trie clearing) and random tests 644 and 645. EIP 684 implementation isn't included in ETC or Atlantis upgrade so should be skipped.

	// EIP 684 Implementations
	skipTests["TransactionCollisionToEmptyButCode.json"] = "Not Implemented"
	skipTests["TransactionCollisionToEmpty.json"] = "Not Implemented"
	skipTests["TransactionCollisionToEmptyButNonce.json"] = "Not Implemented"
	skipTests["CreateCollisionToEmpty.json"] = "Not Implemented"
	skipTests["CreateHashCollision.json"] = "Not Implemented"
	skipTests["createJS_ExampleContract.json"] = "Not Implemented"
	skipTests["RevertDepthCreateAddressCollision.json"] = "Not Implemented"

	// Random Test failures
	skipTests["randomStatetest644.json"] = "random unimplemented"
	skipTests["randomStatetest645.json"] = "random unimplemented"

	// EIP 158/161 skipped tests
	skipTests["RevertPrefoundEmptyOOG.json"] = "State trie clearing unimplemented"
	skipTests["FailedCreateRevertsDeletion.json"] = "State trie clearing unimplemented"

There is already an issue #35 for that edge case and the others are intended so can probably close this issue now.

@soc1c
Copy link
Contributor Author

soc1c commented Aug 7, 2019

Imported from eth-classic/go-ethereum#29

@austinabell
Copy link
Contributor

This was already imported by #13 and is completed already, given #19 is included

@soc1c soc1c added this to the 6.0 Atlantis milestone Aug 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants