Update demo to use self-ticking logger

This commit is contained in:
Greg Fitzgerald
2018-02-21 11:52:03 -07:00
parent b34d2d7dee
commit 7871b38c80
4 changed files with 30 additions and 20 deletions

View File

@@ -2,21 +2,20 @@ extern crate silk;
use silk::historian::Historian;
use silk::log::{verify_slice, Entry, Event, Sha256Hash};
use std::{thread, time};
use std::thread::sleep;
use std::time::Duration;
use std::sync::mpsc::SendError;
fn create_log(hist: &Historian) -> Result<(), SendError<Event>> {
hist.sender.send(Event::Tick)?;
thread::sleep(time::Duration::new(0, 100_000));
sleep(Duration::from_millis(15));
hist.sender.send(Event::UserDataKey(Sha256Hash::default()))?;
thread::sleep(time::Duration::new(0, 100_000));
hist.sender.send(Event::Tick)?;
sleep(Duration::from_millis(10));
Ok(())
}
fn main() {
let seed = Sha256Hash::default();
let hist = Historian::new(&seed, None);
let hist = Historian::new(&seed, Some(10));
create_log(&hist).expect("send error");
drop(hist.sender);
let entries: Vec<Entry> = hist.receiver.iter().collect();

View File

@@ -129,12 +129,11 @@ impl Historian {
mod tests {
use super::*;
use log::*;
use std::thread::sleep;
use std::time::Duration;
#[test]
fn test_historian() {
use std::thread::sleep;
use std::time::Duration;
let zero = Sha256Hash::default();
let hist = Historian::new(&zero, None);
@@ -168,4 +167,21 @@ mod tests {
ExitReason::SendDisconnected
);
}
#[test]
fn test_ticking_historian() {
let zero = Sha256Hash::default();
let hist = Historian::new(&zero, Some(2));
sleep(Duration::from_millis(3));
hist.sender.send(Event::UserDataKey(zero)).unwrap();
sleep(Duration::from_millis(1));
drop(hist.sender);
assert_eq!(
hist.thread_hdl.join().unwrap().1,
ExitReason::RecvDisconnected
);
let entries: Vec<Entry> = hist.receiver.iter().collect();
assert!(verify_slice(&entries, &zero));
}
}