test randomize with error (#5916)

* test randomize with error

* update magic numbers

* fixup

* fixup

* fixup

* no more blobs

* fixup
This commit is contained in:
Rob Walker
2019-09-17 15:11:29 -07:00
committed by GitHub
parent 180f415736
commit a2595b44c6
11 changed files with 181 additions and 883 deletions

View File

@@ -7,8 +7,11 @@ extern crate test;
extern crate solana_core;
use rand::Rng;
use solana_core::blocktree::{entries_to_test_shreds, get_tmp_ledger_path, Blocktree};
use solana_core::entry::{make_large_test_entries, make_tiny_test_entries, Entry};
use solana_core::{
blocktree::{entries_to_test_shreds, get_tmp_ledger_path, Blocktree},
entry::{create_ticks, Entry},
};
use solana_sdk::hash::Hash;
use std::path::Path;
use test::Bencher;
@@ -32,8 +35,7 @@ fn setup_read_bench(
slot: u64,
) {
// Make some big and small entries
let mut entries = make_large_test_entries(num_large_shreds as usize);
entries.extend(make_tiny_test_entries(num_small_shreds as usize));
let entries = create_ticks(num_large_shreds * 4 + num_small_shreds * 2, Hash::default());
// Convert the entries to shreds, write the shreds to the ledger
let shreds = entries_to_test_shreds(entries, slot, slot.saturating_sub(1), true);
@@ -48,7 +50,7 @@ fn setup_read_bench(
fn bench_write_small(bench: &mut Bencher) {
let ledger_path = get_tmp_ledger_path!();
let num_entries = 32 * 1024;
let entries = make_tiny_test_entries(num_entries);
let entries = create_ticks(num_entries, Hash::default());
bench_write_shreds(bench, entries, &ledger_path);
}
@@ -58,7 +60,7 @@ fn bench_write_small(bench: &mut Bencher) {
fn bench_write_big(bench: &mut Bencher) {
let ledger_path = get_tmp_ledger_path!();
let num_entries = 32 * 1024;
let entries = make_large_test_entries(num_entries);
let entries = create_ticks(num_entries, Hash::default());
bench_write_shreds(bench, entries, &ledger_path);
}
@@ -127,7 +129,7 @@ fn bench_insert_data_shred_small(bench: &mut Bencher) {
let blocktree =
Blocktree::open(&ledger_path).expect("Expected to be able to open database ledger");
let num_entries = 32 * 1024;
let entries = make_tiny_test_entries(num_entries);
let entries = create_ticks(num_entries, Hash::default());
bench.iter(move || {
let shreds = entries_to_test_shreds(entries.clone(), 0, 0, true);
blocktree.insert_shreds(shreds, None).unwrap();
@@ -142,7 +144,7 @@ fn bench_insert_data_shred_big(bench: &mut Bencher) {
let blocktree =
Blocktree::open(&ledger_path).expect("Expected to be able to open database ledger");
let num_entries = 32 * 1024;
let entries = make_large_test_entries(num_entries);
let entries = create_ticks(num_entries, Hash::default());
bench.iter(move || {
let shreds = entries_to_test_shreds(entries.clone(), 0, 0, true);
blocktree.insert_shreds(shreds, None).unwrap();

View File

@@ -1,24 +0,0 @@
#![feature(test)]
extern crate test;
use solana_core::entry::{next_entries, reconstruct_entries_from_blobs, EntrySlice};
use solana_sdk::hash::{hash, Hash};
use solana_sdk::signature::{Keypair, KeypairUtil};
use solana_sdk::system_transaction;
use test::Bencher;
#[bench]
fn bench_block_to_blobs_to_block(bencher: &mut Bencher) {
let zero = Hash::default();
let one = hash(&zero.as_ref());
let keypair = Keypair::new();
let tx0 = system_transaction::transfer(&keypair, &keypair.pubkey(), 1, one);
let transactions = vec![tx0; 10];
let entries = next_entries(&zero, 1, transactions);
bencher.iter(|| {
let blobs = entries.to_blobs();
assert_eq!(reconstruct_entries_from_blobs(blobs).unwrap().0, entries);
});
}