add 'ticks-per-slot' to 'solana-test-validator' (#22701)

* add 'ticks-per-slot' to 'solana-test-validator'

* add input parser validator for "ticks-per-slot" argument

* fix fmt

(cherry picked from commit 0562426661)
This commit is contained in:
Haleem Assal
2022-01-24 16:56:37 -04:00
committed by Michael Vines
parent 93b44d8a4c
commit 28fc733894
2 changed files with 25 additions and 1 deletions

View File

@ -4,7 +4,7 @@ use {
solana_clap_utils::{
input_parsers::{pubkey_of, pubkeys_of, value_of},
input_validators::{
is_pubkey, is_pubkey_or_keypair, is_slot, is_url_or_moniker,
is_parsable, is_pubkey, is_pubkey_or_keypair, is_slot, is_url_or_moniker,
normalize_to_url_if_moniker,
},
},
@ -192,6 +192,14 @@ fn main() {
.takes_value(false)
.help("Disable the just-in-time compiler and instead use the interpreter for BPF. Windows always disables JIT."),
)
.arg(
Arg::with_name("ticks_per_slot")
.long("ticks-per-slot")
.value_name("TICKS")
.validator(is_parsable::<u64>)
.takes_value(true)
.help("The number of ticks in a slot"),
)
.arg(
Arg::with_name("slots_per_epoch")
.long("slots-per-epoch")
@ -403,6 +411,7 @@ fn main() {
let rpc_port = value_t_or_exit!(matches, "rpc_port", u16);
let enable_vote_subscription = matches.is_present("rpc_pubsub_enable_vote_subscription");
let faucet_port = value_t_or_exit!(matches, "faucet_port", u16);
let ticks_per_slot = value_t!(matches, "ticks_per_slot", u64).ok();
let slots_per_epoch = value_t!(matches, "slots_per_epoch", Slot).ok();
let gossip_host = matches.value_of("gossip_host").map(|gossip_host| {
solana_net_utils::parse_host(gossip_host).unwrap_or_else(|err| {
@ -545,6 +554,7 @@ fn main() {
("clone_account", "--clone"),
("account", "--account"),
("mint_address", "--mint"),
("ticks_per_slot", "--ticks-per-slot"),
("slots_per_epoch", "--slots-per-epoch"),
("faucet_sol", "--faucet-sol"),
] {
@ -630,6 +640,10 @@ fn main() {
genesis.warp_slot(warp_slot);
}
if let Some(ticks_per_slot) = ticks_per_slot {
genesis.ticks_per_slot(ticks_per_slot);
}
if let Some(slots_per_epoch) = slots_per_epoch {
genesis.epoch_schedule(EpochSchedule::custom(
slots_per_epoch,