changeset 345:f2def29eac08

db_iter: Test reset() and seek-past-last invalidation.
author Lewin Bormann <lbo@spheniscida.de>
date Wed, 04 Oct 2017 20:06:58 +0200
parents 4f4aff8085b8
children a76ff74f0c0f
files src/db_iter.rs
diffstat 1 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/db_iter.rs	Wed Oct 04 20:03:04 2017 +0200
+++ b/src/db_iter.rs	Wed Oct 04 20:06:58 2017 +0200
@@ -294,6 +294,19 @@
     }
 
     #[test]
+    fn db_iter_reset() {
+        let mut db = build_db();
+        let mut iter = db.new_iter().unwrap();
+
+        assert!(iter.advance());
+        assert!(iter.valid());
+        iter.reset();
+        assert!(!iter.valid());
+        assert!(iter.advance());
+        assert!(iter.valid());
+    }
+
+    #[test]
     fn db_iter_test_fwd_backwd() {
         let mut db = build_db();
         let mut iter = db.new_iter().unwrap();
@@ -311,6 +324,7 @@
                                    Direction::Forward,
                                    Direction::Reverse,
                                    Direction::Reverse,
+                                   Direction::Reverse,
                                    Direction::Forward,
                                    Direction::Forward,
                                    Direction::Reverse,
@@ -349,5 +363,11 @@
             iter.seek(k);
             assert_eq!((k.to_vec(), v.to_vec()), current_key_val(&iter).unwrap());
         }
+
+        // seek past last.
+        iter.seek(b"xxx");
+        assert!(!iter.valid());
+        iter.seek(b"aab");
+        assert!(iter.valid());
     }
 }