Skip to content

Commit

Permalink
Added 10m accounts memory test.
Browse files Browse the repository at this point in the history
Signed-off-by: Aleksandr <a-p-petrosyan@yandex.ru>
  • Loading branch information
appetrosyan committed Jan 10, 2022
1 parent 3c2c8e0 commit 8ad719d
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 4 deletions.
8 changes: 4 additions & 4 deletions client/benches/torii.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ fn query_requests(criterion: &mut Criterion) {
if !client_config.torii_api_url.starts_with("http://") {
client_config.torii_api_url = format!("http://{}", client_config.torii_api_url);
}
if !client_config.torii_status_url.starts_with("http://") {
client_config.torii_status_url = format!("http://{}", client_config.torii_status_url);
if !client_config.torii_telemetry_url.starts_with("http://") {
client_config.torii_telemetry_url = format!("http://{}", client_config.torii_telemetry_url);
}
let mut iroha_client = Client::new(&client_config);
thread::sleep(std::time::Duration::from_millis(5000));
Expand Down Expand Up @@ -148,8 +148,8 @@ fn instruction_submits(criterion: &mut Criterion) {
if !client_config.torii_api_url.starts_with("http://") {
client_config.torii_api_url = format!("http://{}", client_config.torii_api_url);
}
if !client_config.torii_status_url.starts_with("http://") {
client_config.torii_status_url = format!("http://{}", client_config.torii_status_url);
if !client_config.torii_telemetry_url.starts_with("http://") {
client_config.torii_telemetry_url = format!("http://{}", client_config.torii_telemetry_url);
}
let mut iroha_client = Client::new(&client_config);
thread::sleep(std::time::Duration::from_millis(5000));
Expand Down
53 changes: 53 additions & 0 deletions client/tests/million_accounts.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#![allow(missing_docs, clippy::pedantic, clippy::restriction)]

use std::thread;

use iroha_core::{
genesis::{GenesisNetwork, GenesisNetworkTrait, GenesisTransaction, RawGenesisBlock},
prelude::*,
samples::get_config,
};
use test_network::{get_key_pair, Peer as TestPeer, TestRuntime};
use tokio::runtime::Runtime;

fn generate_accounts(num: u32) -> Vec<GenesisTransaction> {
let mut ret = Vec::with_capacity(usize::try_from(num).expect("panic"));
for _i in 0..num {
ret.push(
GenesisTransaction::new(
&format!("Alice-{}", num),
&format!("wonderland-{}", num),
&PublicKey::default(),
)
.expect("Failed to create Genesis"),
);
}
ret
}

fn generate_genesis(num: u32) -> RawGenesisBlock {
let transactions = generate_accounts(num);
RawGenesisBlock { transactions }
}

#[test]
#[ignore = "Very slow. run with `cargo test --release` to significantly improve performance."]
fn create_million_accounts() {
let mut peer = <TestPeer>::new().expect("Failed to create peer");
let configuration = get_config(
std::iter::once(peer.id.clone()).collect(),
Some(get_key_pair()),
);
let rt = Runtime::test();
let genesis = GenesisNetwork::from_configuration(
true,
generate_genesis(1000000),
&configuration.genesis,
configuration.sumeragi.max_instruction_number,
)
.expect("genesis creation failed");

rt.block_on(peer.start_with_config(genesis, configuration));

thread::sleep(std::time::Duration::from_millis(50000));
}

0 comments on commit 8ad719d

Please sign in to comment.