1use std::{fs::File, path::Path, thread::sleep, time::Duration};
2
3const TEST_FILE: &'static str = "test-db.db";
4
5fn main() -> anyhow::Result<()> {
6 let db = db::Db::open_in_memory();
7 if db.real().is_none() {
8 return Err(anyhow::anyhow!("Migrations failed"));
9 }
10 let file = Path::new(TEST_FILE);
11
12 let f = File::create(file)?;
13 drop(f);
14
15 db.write_kvp("test", "1")?;
16 db.write_kvp("test-2", "2")?;
17
18 db.workspace_for_roots(&["/tmp1"]);
19 sleep(Duration::from_secs(1));
20 db.workspace_for_roots(&["/tmp1", "/tmp2"]);
21 sleep(Duration::from_secs(1));
22 db.workspace_for_roots(&["/tmp1", "/tmp2", "/tmp3"]);
23 sleep(Duration::from_secs(1));
24 db.workspace_for_roots(&["/tmp2", "/tmp3"]);
25 sleep(Duration::from_secs(1));
26 db.workspace_for_roots(&["/tmp2", "/tmp3", "/tmp4"]);
27 sleep(Duration::from_secs(1));
28 db.workspace_for_roots(&["/tmp2", "/tmp4"]);
29 sleep(Duration::from_secs(1));
30 db.workspace_for_roots(&["/tmp2"]);
31
32 db.write_to(file).ok();
33
34 println!("Wrote database!");
35
36 Ok(())
37}