gwr_engine/
test_helpers.rs1use std::fs;
4use std::io::BufWriter;
5use std::path::Path;
6use std::rc::Rc;
7
8use gwr_track::tracker::{CapnProtoTracker, EntityManager};
9use gwr_track::{Tracker, Writer};
10
11use crate::engine::Engine;
12
13#[must_use]
14pub fn create_tracker(full_filepath: &str) -> Tracker {
15 const FOLDER: &str = "traces";
17
18 fs::create_dir_all(FOLDER).unwrap();
20
21 let filename_only = Path::new(full_filepath)
22 .file_stem()
23 .and_then(|s| s.to_str())
24 .unwrap();
25
26 let bin_writer: Writer = Box::new(BufWriter::new(
27 fs::File::create(format!("{FOLDER}/{filename_only}.bin")).unwrap(),
28 ));
29
30 let default_log_level = log::Level::Trace;
31 let entity_manger = EntityManager::new(default_log_level);
32 let tracker: Tracker = Rc::new(CapnProtoTracker::new(entity_manger, bin_writer));
33 tracker
34}
35
36#[must_use]
37pub fn start_test(full_filepath: &str) -> Engine {
38 Engine::new(&create_tracker(full_filepath))
39}