Skip to content

Commit 885958e

Browse files
committed
Add Altair light client SSZ tests
1 parent 161ece6 commit 885958e

File tree

8 files changed

+55
-15
lines changed

8 files changed

+55
-15
lines changed

consensus/types/src/light_client_bootstrap.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use serde_json::Value;
88
use ssz_derive::{Decode, Encode};
99
use std::sync::Arc;
1010
use test_random_derive::TestRandom;
11+
use tree_hash_derive::TreeHash;
1112

1213
/// A LightClientBootstrap is the initializer we send over to lightclient nodes
1314
/// that are trying to generate their basic storage when booting up.
@@ -19,6 +20,7 @@ use test_random_derive::TestRandom;
1920
Deserialize,
2021
Encode,
2122
Decode,
23+
TreeHash,
2224
TestRandom,
2325
arbitrary::Arbitrary,
2426
)]

consensus/types/src/light_client_finality_update.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use serde_json::Value;
1010
use ssz_derive::{Decode, Encode};
1111
use test_random_derive::TestRandom;
1212
use tree_hash::TreeHash;
13+
use tree_hash_derive::TreeHash;
1314

1415
/// A LightClientFinalityUpdate is the update lightclient request or received by a gossip that
1516
/// signal a new finalized beacon block header for the light client sync protocol.
@@ -21,6 +22,7 @@ use tree_hash::TreeHash;
2122
Deserialize,
2223
Encode,
2324
Decode,
25+
TreeHash,
2426
TestRandom,
2527
arbitrary::Arbitrary,
2628
)]

consensus/types/src/light_client_header.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use crate::BeaconBlockHeader;
33
use serde::{Deserialize, Serialize};
44
use ssz_derive::{Decode, Encode};
55
use test_random_derive::TestRandom;
6+
use tree_hash_derive::TreeHash;
67

78
#[derive(
89
Debug,
@@ -12,6 +13,7 @@ use test_random_derive::TestRandom;
1213
Deserialize,
1314
Encode,
1415
Decode,
16+
TreeHash,
1517
TestRandom,
1618
arbitrary::Arbitrary,
1719
)]

consensus/types/src/light_client_optimistic_update.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use serde_json::Value;
88
use ssz_derive::{Decode, Encode};
99
use test_random_derive::TestRandom;
1010
use tree_hash::TreeHash;
11+
use tree_hash_derive::TreeHash;
1112

1213
/// A LightClientOptimisticUpdate is the update we send on each slot,
1314
/// it is based off the current unfinalized epoch is verified only against BLS signature.
@@ -19,6 +20,7 @@ use tree_hash::TreeHash;
1920
Deserialize,
2021
Encode,
2122
Decode,
23+
TreeHash,
2224
TestRandom,
2325
arbitrary::Arbitrary,
2426
)]

consensus/types/src/light_client_update.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use ssz_types::typenum::{U5, U6};
1111
use std::sync::Arc;
1212
use test_random_derive::TestRandom;
1313
use tree_hash::TreeHash;
14+
use tree_hash_derive::TreeHash;
1415

1516
pub const FINALIZED_ROOT_INDEX: usize = 105;
1617
pub const CURRENT_SYNC_COMMITTEE_INDEX: usize = 54;
@@ -64,6 +65,7 @@ impl From<ArithError> for Error {
6465
Deserialize,
6566
Encode,
6667
Decode,
68+
TreeHash,
6769
TestRandom,
6870
arbitrary::Arbitrary,
6971
)]

testing/ef_tests/check_all_files_accessed.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,6 @@
2727
"tests/.*/.*/ssz_static/PowBlock/",
2828
# light_client
2929
"tests/.*/.*/light_client",
30-
# LightClientStore
31-
"tests/.*/.*/ssz_static/LightClientStore",
32-
# LightClientUpdate
33-
"tests/.*/.*/ssz_static/LightClientUpdate",
34-
# LightClientSnapshot
35-
"tests/.*/.*/ssz_static/LightClientSnapshot",
36-
# LightClientBootstrap
37-
"tests/.*/.*/ssz_static/LightClientBootstrap",
38-
# LightClientOptimistic
39-
"tests/.*/.*/ssz_static/LightClientOptimistic",
40-
# LightClientFinalityUpdate
41-
"tests/.*/.*/ssz_static/LightClientFinalityUpdate",
42-
# LightClientHeader
43-
"tests/.*/.*/ssz_static/LightClientHeader",
4430
# One of the EF researchers likes to pack the tarballs on a Mac
4531
".*\.DS_Store.*",
4632
# More Mac weirdness.

testing/ef_tests/src/type_name.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ type_name!(Fork);
7373
type_name!(ForkData);
7474
type_name_generic!(HistoricalBatch);
7575
type_name_generic!(IndexedAttestation);
76+
type_name_generic!(LightClientBootstrap);
77+
type_name_generic!(LightClientFinalityUpdate);
78+
type_name!(LightClientHeader);
79+
type_name_generic!(LightClientOptimisticUpdate);
80+
type_name_generic!(LightClientUpdate);
7681
type_name_generic!(PendingAttestation);
7782
type_name!(ProposerSlashing);
7883
type_name_generic!(SignedAggregateAndProof);

testing/ef_tests/tests/tests.rs

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,6 @@ mod ssz_static {
236236
ssz_static_test!(fork_data, ForkData);
237237
ssz_static_test!(historical_batch, HistoricalBatch<_>);
238238
ssz_static_test!(indexed_attestation, IndexedAttestation<_>);
239-
// NOTE: LightClient* intentionally omitted
240239
ssz_static_test!(pending_attestation, PendingAttestation<_>);
241240
ssz_static_test!(proposer_slashing, ProposerSlashing);
242241
ssz_static_test!(signed_aggregate_and_proof, SignedAggregateAndProof<_>);
@@ -285,6 +284,46 @@ mod ssz_static {
285284
.run();
286285
}
287286

287+
#[test]
288+
fn light_client_bootstrap() {
289+
SszStaticHandler::<LightClientBootstrap<MinimalEthSpec>, MinimalEthSpec>::altair_only()
290+
.run();
291+
SszStaticHandler::<LightClientBootstrap<MainnetEthSpec>, MainnetEthSpec>::altair_only()
292+
.run();
293+
}
294+
295+
#[test]
296+
fn light_client_finality_update() {
297+
SszStaticHandler::<LightClientFinalityUpdate<MinimalEthSpec>, MinimalEthSpec>::altair_only(
298+
)
299+
.run();
300+
SszStaticHandler::<LightClientFinalityUpdate<MainnetEthSpec>, MainnetEthSpec>::altair_only(
301+
)
302+
.run();
303+
}
304+
305+
#[test]
306+
fn light_client_header() {
307+
SszStaticHandler::<LightClientHeader, MinimalEthSpec>::altair_only().run();
308+
SszStaticHandler::<LightClientHeader, MainnetEthSpec>::altair_only().run();
309+
}
310+
311+
#[test]
312+
fn light_client_optimistic_update() {
313+
SszStaticHandler::<LightClientOptimisticUpdate<MinimalEthSpec>, MinimalEthSpec>::altair_only(
314+
)
315+
.run();
316+
SszStaticHandler::<LightClientOptimisticUpdate<MainnetEthSpec>, MainnetEthSpec>::altair_only(
317+
)
318+
.run();
319+
}
320+
321+
#[test]
322+
fn light_client_update() {
323+
SszStaticHandler::<LightClientUpdate<MinimalEthSpec>, MinimalEthSpec>::altair_only().run();
324+
SszStaticHandler::<LightClientUpdate<MainnetEthSpec>, MainnetEthSpec>::altair_only().run();
325+
}
326+
288327
#[test]
289328
fn signed_contribution_and_proof() {
290329
SszStaticHandler::<SignedContributionAndProof<MinimalEthSpec>, MinimalEthSpec>::altair_and_later().run();

0 commit comments

Comments
 (0)