Skip to content

Commit 97c021a

Browse files
committed
Add tests
1 parent dfb913e commit 97c021a

1 file changed

Lines changed: 66 additions & 0 deletions

File tree

crates/charon/src/eth2wrap/version.rs

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,69 @@ pub fn check_beacon_node_version(bn_version: &str) {
8484
Ok(()) => { /* Do nothing */ }
8585
}
8686
}
87+
88+
#[cfg(test)]
89+
mod tests {
90+
use super::*;
91+
92+
#[test]
93+
fn check_beacon_node_version_status() {
94+
let tc = vec![
95+
// Teku
96+
(
97+
"teku/v25.9.3/linux-x86_64/-eclipseadoptium-openjdk64bitservervm-java-21",
98+
Ok(()),
99+
),
100+
(
101+
"teku/vUNKNOWN+g40561a9/linux-x86_64/-eclipseadoptium-openjdk64bitservervm-java-21",
102+
Err(BeaconNodeVersionError::InvalidFormat),
103+
),
104+
// Lighthouse
105+
("Lighthouse/v8.0.1-e42406d/x86_64-linux", Ok(())),
106+
("Lighthouse/v8.0.0-54f7bc5/aarch64-linux", Ok(())),
107+
// Lodestar
108+
("Lodestar/v1.35.0/8335180", Ok(())),
109+
("Lodestar/v1.36.0/1a34f98", Ok(())),
110+
// Nimbus
111+
("Nimbus/v26.4.1-77cfa7-stateofus", Ok(())),
112+
("Nimbus/v26.5.0-d2f233-stateofus", Ok(())),
113+
(
114+
"Nimbus/v25.9.0-c7e5ca-stateofus",
115+
Err(BeaconNodeVersionError::TooOld {
116+
client: version::SemVer::try_from("v25.9.0").unwrap(),
117+
minimum: version::SemVer::try_from("v25.9.2").unwrap(),
118+
}),
119+
),
120+
// Prysm
121+
(
122+
"Prysm/v5.3.2 (linux amd64)",
123+
Err(BeaconNodeVersionError::TooOld {
124+
client: version::SemVer::try_from("v5.3.2").unwrap(),
125+
minimum: version::SemVer::try_from("v6.1.0").unwrap(),
126+
}),
127+
),
128+
("Prysm/v6.1.2 (linux amd64)", Ok(())),
129+
("Prysm/v6.2.0 (linux amd64)", Ok(())),
130+
// Grandine
131+
("Grandine/2.1.0-29cb5c1/x86_64-linux2025-05-19", Ok(())),
132+
// Additional error cases
133+
("", Err(BeaconNodeVersionError::InvalidFormat)),
134+
("justastring", Err(BeaconNodeVersionError::InvalidFormat)),
135+
("/v7.0.0", Err(BeaconNodeVersionError::InvalidFormat)),
136+
(
137+
"UnknownClient/v7.0.0",
138+
Err(BeaconNodeVersionError::UnknownClient),
139+
),
140+
("Lighthouse/", Err(BeaconNodeVersionError::InvalidFormat)),
141+
(
142+
"Lighthouse/vBAD",
143+
Err(BeaconNodeVersionError::InvalidFormat),
144+
),
145+
];
146+
147+
for (input, expected) in tc {
148+
let result = super::check_beacon_node_version_status(input);
149+
assert_eq!(result, expected);
150+
}
151+
}
152+
}

0 commit comments

Comments
 (0)