changeset 320:ac996598254b

db_impl: Add tests for get*() methods
author Lewin Bormann <lbo@spheniscida.de>
date Fri, 29 Sep 2017 19:43:36 +0200
parents 29dd4509365f
children 399b1358ea66
files src/db_impl.rs
diffstat 1 files changed, 26 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/db_impl.rs	Fri Sep 29 19:43:22 2017 +0200
+++ b/src/db_impl.rs	Fri Sep 29 19:43:36 2017 +0200
@@ -1127,6 +1127,32 @@
     }
 
     #[test]
+    fn test_db_impl_get_from_table() {
+        let mut db = build_db();
+
+        assert_eq!(26, db.vset.last_seq);
+
+        db.put("xyz".as_bytes(), "123".as_bytes()).unwrap();
+
+        // memtable get
+        assert_eq!("123".as_bytes(),
+                   db.get("xyz".as_bytes()).unwrap().as_slice());
+        assert!(db.get_internal(26, "xyz".as_bytes()).unwrap().is_none());
+        assert!(db.get_internal(27, "xyz".as_bytes()).unwrap().is_some());
+
+        // table get
+        assert_eq!("val2".as_bytes(),
+                   db.get("eab".as_bytes()).unwrap().as_slice());
+        assert!(db.get_internal(3, "eab".as_bytes()).unwrap().is_none());
+        assert!(db.get_internal(30, "eab".as_bytes()).unwrap().is_some());
+
+        let ss = db.get_snapshot();
+        assert_eq!("val2".as_bytes(),
+                   db.get_at(&ss, "eab".as_bytes()).unwrap().unwrap().as_slice());
+        db.release_snapshot(ss);
+    }
+
+    #[test]
     fn test_db_impl_compact_single_file() {
         let mut db = build_db();
         set_file_to_compact(&mut db, 4);