Skip to content
This repository has been archived by the owner on Aug 13, 2019. It is now read-only.

Failing tests due to lack of implementation #29

Closed
austinabell opened this issue May 16, 2019 · 3 comments
Closed

Failing tests due to lack of implementation #29

austinabell opened this issue May 16, 2019 · 3 comments

Comments

@austinabell
Copy link
Contributor

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

@soc1c
Copy link
Contributor

soc1c commented Jun 10, 2019

what's the status of this @steviezhang @austinabell ?

@austinabell
Copy link
Contributor Author

austinabell commented Jun 19, 2019

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

soc1c commented Aug 7, 2019

Moved to etclabscore/go-ethereum#27

@soc1c soc1c closed this as completed Aug 7, 2019
soc1c added a commit that referenced this issue Aug 13, 2019
* Replace repository reference for accounts/abi/bind (#29)

* docs: update badges (#34)

* docs: add gitter badge

* docs: add circle-ci badge

* Update README.md

* Update README.md

* Update README.md

* docs: update repository path

* Update README.md

* Tx Encoding and decoding fix (#33)

* Added test for decoding old encoding function

* Fixed decoding issue and improved tests to handle all cases including previous client

* Add compatibility with previous version

* Rename receipt storage variable

* Storage and edge case fixes (#28)

* Applied storage fixes and updates

* Minor execution refactor
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants