summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-02-28 11:45:31 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-06-01 13:49:22 +0200
commit35a8bfdaa60e1bc449648171d7f18b253f206a26 (patch)
treee40b83805373ed7e5733c97f21b2dd518833f819
parent59f575274af2f1247b5c83be3796e833096528cc (diff)
Add check whether Store::is_borrowed() works
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--lib/core/libimagstore/src/store.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/core/libimagstore/src/store.rs b/lib/core/libimagstore/src/store.rs
index 79eb5b3e..bccdd2b2 100644
--- a/lib/core/libimagstore/src/store.rs
+++ b/lib/core/libimagstore/src/store.rs
@@ -1315,4 +1315,38 @@ mod store_tests {
assert!(!store.is_borrowed(two).unwrap());
}
+ #[test]
+ fn test_whether_entry_is_borrowed() {
+ use crate::storeid::StoreId;
+ setup_logging();
+
+ let store = get_store();
+
+ let one = StoreId::new(PathBuf::from("one")).unwrap();
+ let two = StoreId::new(PathBuf::from("two")).unwrap();
+
+ debug!("Creating entries");
+ let _ = store.create(one.clone()).unwrap();
+ let _ = store.create(two.clone()).unwrap();
+
+ assert!(!store.is_borrowed(one.clone()).unwrap());
+ assert!(!store.is_borrowed(two.clone()).unwrap());
+
+ let one_entry = store.get(one.clone()).unwrap().unwrap();
+
+ assert!(store.is_borrowed(one.clone()).unwrap());
+ assert!(!store.is_borrowed(two.clone()).unwrap());
+
+ let two_entry = store.get(two.clone()).unwrap().unwrap();
+
+ assert!(store.is_borrowed(one.clone()).unwrap());
+ assert!(store.is_borrowed(two.clone()).unwrap());
+
+ drop(one_entry);
+ drop(two_entry);
+
+ assert!(!store.is_borrowed(one.clone()).unwrap());
+ assert!(!store.is_borrowed(two.clone()).unwrap());
+ }
+
}