Fix format alignment for cluster info trace (#25741)
* double shrinking * remove pre/post shrink time * fix cluster info trace alignemnt * add test * format * typo * add checks in cluster info trace test * update cargo lock * clippy * clippy * move regex deps to dev deps * cargo lock
This commit is contained in:
parent
73b7db4a75
commit
4223f82922
|
@ -5060,6 +5060,7 @@ dependencies = [
|
|||
"rand 0.7.3",
|
||||
"rand_chacha 0.2.2",
|
||||
"rayon",
|
||||
"regex",
|
||||
"rustc_version 0.4.0",
|
||||
"serde",
|
||||
"serde_bytes",
|
||||
|
|
|
@ -48,6 +48,7 @@ solana-vote-program = { path = "../programs/vote", version = "=1.11.0" }
|
|||
thiserror = "1.0"
|
||||
|
||||
[dev-dependencies]
|
||||
regex = "1"
|
||||
num_cpus = "1.13.1"
|
||||
serial_test = "0.6.0"
|
||||
|
||||
|
|
|
@ -728,8 +728,8 @@ impl ClusterInfo {
|
|||
format!(
|
||||
"RPC Address |Age(ms)| Node identifier \
|
||||
| Version | RPC |PubSub|ShredVer\n\
|
||||
------------------+-------+----------------------------------------------+---------+\
|
||||
------+------+--------\n\
|
||||
------------------+-------+----------------------------------------------\
|
||||
+---------+------+------+--------\n\
|
||||
{}\
|
||||
RPC Enabled Nodes: {}",
|
||||
nodes.join(""),
|
||||
|
@ -774,7 +774,7 @@ impl ClusterInfo {
|
|||
};
|
||||
let ip_addr = node.gossip.ip();
|
||||
Some(format!(
|
||||
"{:15} {:2}| {:5} | {:44} |{:^9}| {:5}| {:5}| {:5}| {:5}| {:5}| {:5}| {:5}| {:5}| {}\n",
|
||||
"{:15} {:2}| {:5} | {:44} |{:^9}| {:5}| {:5}| {:5}| {:5}| {:5}| {:5}| {:5}| {:5}| {}\n",
|
||||
if ContactInfo::is_valid_address(&node.gossip, &self.socket_addr_space) {
|
||||
ip_addr.to_string()
|
||||
} else {
|
||||
|
@ -805,8 +805,8 @@ impl ClusterInfo {
|
|||
format!(
|
||||
"IP Address |Age(ms)| Node identifier \
|
||||
| Version |Gossip|TPUvote| TPU |TPUfwd| TVU |TVUfwd|Repair|ServeR|ShredVer\n\
|
||||
------------------+-------+----------------------------------------------+---------+\
|
||||
------+------+-------+------+------+------+------+------+--------\n\
|
||||
------------------+-------+----------------------------------------------\
|
||||
+---------+------+-------+------+------+------+------+------+------+--------\n\
|
||||
{}\
|
||||
Nodes: {}{}{}",
|
||||
nodes.join(""),
|
||||
|
@ -3064,6 +3064,7 @@ mod tests {
|
|||
itertools::izip,
|
||||
rand::{seq::SliceRandom, SeedableRng},
|
||||
rand_chacha::ChaChaRng,
|
||||
regex::Regex,
|
||||
solana_ledger::shred::Shredder,
|
||||
solana_net_utils::MINIMUM_VALIDATOR_PORT_RANGE_WIDTH,
|
||||
solana_sdk::signature::{Keypair, Signer},
|
||||
|
@ -3094,6 +3095,91 @@ mod tests {
|
|||
));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cluster_info_trace() {
|
||||
solana_logger::setup();
|
||||
let keypair = Keypair::from_base58_string("3jATNWfbii1btv6nCpToAXAJz6a4km5HsLSWiwLfNvHNQAmvksLFVAKGUz286bXb9N4ivXx8nuwkn91PFDTyoFEp");
|
||||
|
||||
let node = {
|
||||
let tpu = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8900);
|
||||
let _tpu_quic = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8901);
|
||||
|
||||
let gossip = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8888);
|
||||
let tvu = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8902);
|
||||
let tvu_forwards = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8903);
|
||||
let tpu_forwards = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8904);
|
||||
|
||||
let tpu_vote = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8906);
|
||||
let repair = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8907);
|
||||
let rpc = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8908);
|
||||
let rpc_pubsub = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8909);
|
||||
|
||||
let serve_repair = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8910);
|
||||
|
||||
let info = ContactInfo {
|
||||
id: keypair.pubkey(),
|
||||
gossip,
|
||||
tvu,
|
||||
tvu_forwards,
|
||||
repair,
|
||||
tpu,
|
||||
tpu_forwards,
|
||||
tpu_vote,
|
||||
rpc,
|
||||
rpc_pubsub,
|
||||
serve_repair,
|
||||
wallclock: timestamp(),
|
||||
shred_version: 0,
|
||||
};
|
||||
Node {
|
||||
info,
|
||||
sockets: Sockets {
|
||||
gossip: UdpSocket::bind("0.0.0.0:0").unwrap(),
|
||||
ip_echo: None,
|
||||
tvu: vec![],
|
||||
tvu_forwards: vec![],
|
||||
tpu: vec![],
|
||||
tpu_forwards: vec![],
|
||||
tpu_vote: vec![],
|
||||
broadcast: vec![],
|
||||
repair: UdpSocket::bind("0.0.0.0:0").unwrap(),
|
||||
retransmit_sockets: vec![],
|
||||
serve_repair: UdpSocket::bind("0.0.0.0:0").unwrap(),
|
||||
ancestor_hashes_requests: UdpSocket::bind("0.0.0.0:0").unwrap(),
|
||||
tpu_quic: UdpSocket::bind("0.0.0.0:0").unwrap(),
|
||||
tpu_forwards_quic: UdpSocket::bind("0.0.0.0:0").unwrap(),
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
let cluster_info = Arc::new(ClusterInfo::new(
|
||||
node.info,
|
||||
Arc::new(keypair),
|
||||
SocketAddrSpace::Unspecified,
|
||||
));
|
||||
|
||||
let golden = r#"
|
||||
IP Address |Age(ms)| Node identifier | Version |Gossip|TPUvote| TPU |TPUfwd| TVU |TVUfwd|Repair|ServeR|ShredVer
|
||||
------------------+-------+----------------------------------------------+---------+------+-------+------+------+------+------+------+------+--------
|
||||
127.0.0.1 me| \d | 7fGBVaezz2YrTxAkwvLjBZpxrGEfNsd14Jxw9W5Df5zY | - | 8888 | 8906 | 8900 | 8904 | 8902 | 8903 | 8907 | 8910 | 0
|
||||
Nodes: 1
|
||||
|
||||
RPC Address |Age(ms)| Node identifier | Version | RPC |PubSub|ShredVer
|
||||
------------------+-------+----------------------------------------------+---------+------+------+--------
|
||||
127.0.0.1 me| \d | 7fGBVaezz2YrTxAkwvLjBZpxrGEfNsd14Jxw9W5Df5zY | - | 8908 | 8909 | 0
|
||||
RPC Enabled Nodes: 1"#;
|
||||
|
||||
let re = Regex::new(golden).unwrap();
|
||||
|
||||
let output = format!(
|
||||
"\n{}\n\n{}",
|
||||
cluster_info.contact_info_trace(),
|
||||
cluster_info.rpc_info_trace()
|
||||
);
|
||||
|
||||
assert!(re.is_match(&output));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_handle_pull() {
|
||||
solana_logger::setup();
|
||||
|
|
Loading…
Reference in New Issue