prysm-pulse/beacon-chain/chaintest/backend/state_test_format.go
Raul Jordan d47db5e834
Advance Beacon State Transition Part 6: Simulate Validator Exits (#1302)
* deposit definition according to latest spec

* ssz decode input data tests

* fix todo

* ignore XXX fields in struct

* fix

* timestamp

* gazelle run processing

* process deposit complete

* all logic complete

* verify merkle branch

* gazelle

* process deposit func

* diff cov 1005

* add todo"

* all test cases written down

* most tests complete

* ttl timestamp fail

* 100% code coverage in deposits

* fix params

* encode deposit data helper func

* state transition with no slots failing with panic at calcnewblockhashes

* smaller deposits for chain start

* state advancement benches

* ran go tests

* bazel

* improve the thing

* lint

* works works works

* all conflicts fixed

* edit readme to specify tests format

* edit readme to specify tests format

* skip slots works yay

* gazelle

* edit readme to specify tests format

* wrapped up all randao simulation

* fix

* passing

* goimports

* move to slices pkg

* deadcode

* deposit yaml tests

* created deposit trie implementation in Go

* created deposit trie implementation in Go

* gazelle

* merkle branch generation

* merkle branch generation

* more merkle debugging

* fix deposit trie

* include new merkle trie functions

* update all deposit operations

* capitalize

* advancing deposits fully works, grows the validator set

* wrap up time formatting

* lint fix

* include all information in the README

* edit conf

* revert

* clean up before merge

* successfully e2e test proposer slashings

* casper advancement

* wrap up casper slashings

* gazelle

* fix conf

* fix comments

* advance validator exits complete

* wrap up readme
2019-01-15 01:02:49 +08:00

79 lines
2.9 KiB
Go

package backend
// StateTest --
type StateTest struct {
Title string
Summary string
Fork string `yaml:"fork"`
Version string `yaml:"version"`
TestSuite string `yaml:"test_suite"`
TestCases []*StateTestCase `yaml:"test_cases"`
}
// StateTestCase --
type StateTestCase struct {
Config *StateTestConfig `yaml:"config"`
Results *StateTestResults `yaml:"results"`
}
// StateTestConfig --
type StateTestConfig struct {
SkipSlots []uint64 `yaml:"skip_slots"`
DepositSlots []uint64 `yaml:"deposit_slots"`
Deposits []*StateTestDeposit `yaml:"deposits"`
ProposerSlashings []*StateTestProposerSlashing `yaml:"proposer_slashings"`
CasperSlashings []*StateTestCasperSlashing `yaml:"casper_slashings"`
ValidatorExits []*StateTestValidatorExit `yaml:"validator_exits"`
EpochLength uint64 `yaml:"epoch_length"`
ShardCount uint64 `yaml:"shard_count"`
DepositsForChainStart uint64 `yaml:"deposits_for_chain_start"`
NumSlots uint64 `yaml:"num_slots"`
}
// StateTestDeposit --
type StateTestDeposit struct {
Slot uint64 `yaml:"slot"`
Amount uint64 `yaml:"amount"`
MerkleIndex uint64 `yaml:"merkle_index"`
Pubkey string `yaml:"pubkey"`
}
// StateTestProposerSlashing --
type StateTestProposerSlashing struct {
Slot uint64 `yaml:"slot"`
ProposerIndex uint32 `yaml:"proposer_index"`
Proposal1Shard uint64 `yaml:"proposal_1_shard"`
Proposal2Shard uint64 `yaml:"proposal_2_shard"`
Proposal1Slot uint64 `yaml:"proposal_1_slot"`
Proposal2Slot uint64 `yaml:"proposal_2_slot"`
Proposal1Root string `yaml:"proposal_1_root"`
Proposal2Root string `yaml:"proposal_2_root"`
}
// StateTestCasperSlashing --
type StateTestCasperSlashing struct {
Slot uint64 `yaml:"slot"`
Votes1Slot uint64 `yaml:"votes_1_slot"`
Votes1JustifiedSlot uint64 `yaml:"votes_1_justified_slot"`
Votes1CustodyBit0Indices []uint32 `yaml:"votes_1_custody_0_indices"`
Votes1CustodyBit1Indices []uint32 `yaml:"votes_1_custody_1_indices"`
Votes2Slot uint64 `yaml:"votes_2_slot"`
Votes2JustifiedSlot uint64 `yaml:"votes_2_justified_slot"`
Votes2CustodyBit0Indices []uint32 `yaml:"votes_2_custody_0_indices"`
Votes2CustodyBit1Indices []uint32 `yaml:"votes_2_custody_1_indices"`
}
// StateTestValidatorExit --
type StateTestValidatorExit struct {
Slot uint64 `yaml:"slot"`
ValidatorIndex uint32 `yaml:"validator_index"`
}
// StateTestResults --
type StateTestResults struct {
Slot uint64
NumValidators int `yaml:"num_validators"`
PenalizedValidators []uint32 `yaml:"penalized_validators"`
ExitedValidators []uint32 `yaml:"exited_validators"`
}