in common/rusty_leveldb_sgx/src/db_iter.rs [344:392]
fn db_iter_test_fwd_backwd() {
let mut db = build_db().0;
let mut iter = db.new_iter().unwrap();
// keys and values come from make_version(); they are each the latest entry.
let keys: &[&[u8]] = &[
b"aaa", b"aab", b"aax", b"aba", b"bab", b"bba", b"cab", b"cba",
];
let vals: &[&[u8]] = &[
b"val1", b"val2", b"val2", b"val3", b"val4", b"val5", b"val2", b"val3",
];
// This specifies the direction that the iterator should move to. Based on this, an index
// into keys/vals is incremented/decremented so that we get a nice test checking iterator
// move correctness.
let dirs: &[Direction] = &[
Direction::Forward,
Direction::Forward,
Direction::Forward,
Direction::Reverse,
Direction::Reverse,
Direction::Reverse,
Direction::Forward,
Direction::Forward,
Direction::Reverse,
Direction::Forward,
Direction::Forward,
Direction::Forward,
Direction::Forward,
];
let mut i = 0;
iter.advance();
for d in dirs {
assert_eq!(
(keys[i].to_vec(), vals[i].to_vec()),
current_key_val(&iter).unwrap()
);
match *d {
Direction::Forward => {
assert!(iter.advance());
i += 1;
}
Direction::Reverse => {
assert!(iter.prev());
i -= 1;
}
}
}
}