--- tags: hard_fork_1 --- # Highlevel Altair spec test todo ## Background Spec test ensures client implementation is on par with python spec code. The spec test itself is generated using the python spec code. When a client implementation passes spec tests, it gives great confidence that the client code aligns with the spec and other client implementations. ## Current spec test code They are located in: - beacon-chain/core/blocks/spectest - beacon-chain/core/epoch/spectest - beacon-chain/core/state/spectest - beacon-chain/core/helper/spectest - proto/testing/spectest - shared/params/spectest - shared/bls/spectest ## Eth2 spec test repo https://github.com/ethereum/eth2.0-spec-tests ## What changed in Altair? 1.) Test format changed to snappy https://github.com/ethereum/eth2.0-specs/pull/2097 2.) New fork choice tests https://github.com/ethereum/eth2.0-spec-tests/tree/master/tests/mainnet/phase0/fork_choice/get_head/pyspec_tests 3.) New Altair tests https://github.com/ethereum/eth2.0-spec-tests/tree/master/tests/mainnet/altair ## Moving on - Using the new test format snappy (1) and implementing the new fork choice tests (2), we can proceed forward with them right now. They are not blocked by Altair. - Inplemeting the new altair tests (3), it's blocked by Altair state transition which Terence is working on. but it will be great to have the placeholder in place so when Altair state transition is completed, we can plug them in to test right away ## Useful code spot - Workspace is where spec test URLs are defined: https://github.com/prysmaticlabs/prysm/blob/develop/WORKSPACE#L228 - The testdata belongs here in the `BUILD.bazel` https://github.com/prysmaticlabs/prysm/blob/develop/beacon-chain/core/blocks/spectest/BUILD.bazel#L29