in common/rusty_leveldb_sgx/src/db_impl.rs [1484:1533]
fn test_db_impl_get_from_table_with_snapshot() {
let mut db = build_db().0;
assert_eq!(30, db.vset.borrow().last_seq);
// seq = 31
db.put("xyy".as_bytes(), "123".as_bytes()).unwrap();
let old_ss = db.get_snapshot();
// seq = 32
db.put("xyz".as_bytes(), "123".as_bytes()).unwrap();
db.flush().unwrap();
assert!(db.get_at(&old_ss, "xyy".as_bytes()).unwrap().is_some());
assert!(db.get_at(&old_ss, "xyz".as_bytes()).unwrap().is_none());
// memtable get
assert_eq!(
"123".as_bytes(),
db.get("xyz".as_bytes()).unwrap().as_slice()
);
assert!(db.get_internal(31, "xyy".as_bytes()).unwrap().is_some());
assert!(db.get_internal(32, "xyy".as_bytes()).unwrap().is_some());
assert!(db.get_internal(31, "xyz".as_bytes()).unwrap().is_none());
assert!(db.get_internal(32, "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(32, "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()
);
}
// from table.
assert_eq!(
"val2".as_bytes(),
db.get("cab".as_bytes()).unwrap().as_slice()
);
}