#![feature(test)]
extern crate cask;
extern crate rand;
extern crate test;
use std::fs;
use cask::CaskOptions;
use rand::Rng;
use test::Bencher;
#[bench]
fn get_latency(b: &mut Bencher) {
let id: String = rand::thread_rng().gen_ascii_chars().take(16).collect();
let path = format!("bench-{}.db", id);
let cask = CaskOptions::default()
.compaction_check_frequency(1)
.max_file_size(50 * 1024 * 1024)
.open(&path)
.unwrap();
let key = vec![1u8; 512];
let vec = vec![1u8; 4096];
cask.put(key.clone(), &vec).unwrap();
b.bytes = vec.len() as u64;
b.iter(|| cask.get(&key).unwrap());
fs::remove_dir_all(path).unwrap();
}
#[bench]
fn put_latency(b: &mut Bencher) {
let id: String = rand::thread_rng().gen_ascii_chars().take(16).collect();
let path = format!("bench-{}.db", id);
let cask = CaskOptions::default()
.compaction_check_frequency(1)
.max_file_size(50 * 1024 * 1024)
.open(&path)
.unwrap();
let key = vec![1u8; 512];
let vec = vec![1u8; 4096];
b.bytes = vec.len() as u64;
b.iter(|| cask.put(key.clone(), &vec).unwrap());
fs::remove_dir_all(path).unwrap();
}