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

Foundation 1.10.1 generated 1617316443 #4

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

meowsbits
Copy link
Member

@meowsbits meowsbits commented Apr 1, 2021

Replaces #3

Proposes generated ("extrapolated") tests filled by core-geth (see etclabscore/core-geth#353).

Generated test suites include

  • Difficulty tests
  • State tests

Across all pre-existing fork configurations, plus

  • All historical ETC forks, and
  • a tentative ETC_Magneto fork configuration

This PR is just for 👀. It shouldn't actually be merged to the develop branch. This suite is referenced and normally used as a submodule pegged to a specific commit.


Configurations

All generated configuration names follow the same pattern as incumbent subtest configurations, eg. Berlin.

ETC-specific configurations include

  • ETC_Atlantis
  • ETC_Agharta
  • ETC_Phoenix
  • ETC_Magneto

GeneralStateTests document these configurations in a newly-created file GeneralStateTests_configs.json, where all configurations pertinent for the GeneralStateTests are encoded as a named map of name:configuration, eg.

{
    "ETC_Magneto": {...},
    "Berlin": {...}

Configurations are encoded as CoreGeth-formatted configurations, listing the activation of each implemented EIP and ECIP articulately. A similar configuration dictionary is provided for the Legacy state tests which includes Constantinople and prior configurations.

Difficulty tests ("BasicTests") are differentially encoded as newline-delimited JSON (NDJSON) at BasicTests/mgen_difficulty.ndjson (https://github.com/etclabscore/tests/pull/4/files?file-filters%5B%5D=#diff-5bb78da813e90ca059b5474659264c72b4a1b0d383ae29ac2e1e2bc420f1eff9).

Configurations for these subtests are included as file references under the chainspec key of the test object.

chainspec: {
    filename: difficulty_test.json
    sha1sum: abe15adadf...
}
type chainspecRef struct {
	Filename string `json:"filename"`
	Sha1Sum  []byte `json:"sha1sum"`
}

These cited configurations are available in in the params/coregeth.json.d/ directory of coregeth AND in the newly-created ./configurations/ directory at the root of this project.

Signed-off-by: meows <b5c6@protonmail.com>
Signed-off-by: meows <b5c6@protonmail.com>
Date: 2021-04-05 06:17:47-05:00
Signed-off-by: meows <b5c6@protonmail.com>
@ziogaschr
Copy link
Member

Do we need to add a ref about ETC_Magneto here? @meowsbits

@meowsbits
Copy link
Member Author

My rationale for not adding that was that difficulty hasn't changed for the Foundation since EIP2384 Muir Glacier, and the tests haven't changed in at least that long.

This leads to me to think that adding an ETC_Magneto case would only duplicate the set of ETC_Phoenix.

@ziogaschr
Copy link
Member

Great point and it makes total sense. Your response seems to be a great fit for a comment in the test as well.

@meowsbits
Copy link
Member Author

Well noted, done at etclabscore/core-geth@04b459f

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