in common/rusty_leveldb_sgx/src/block.rs [433:488]
fn test_block_seek() {
let mut o = options::for_test();
o.block_restart_interval = 3;
let data = get_data();
let mut builder = BlockBuilder::new(o.clone());
for &(k, v) in data.iter() {
builder.add(k, v);
}
let block_contents = builder.finish();
let mut block = Block::new(o.clone(), block_contents).iter();
block.seek(&"prefix_key2".as_bytes());
assert!(block.valid());
assert_eq!(
current_key_val(&block),
Some((
"prefix_key2".as_bytes().to_vec(),
"value".as_bytes().to_vec()
))
);
block.seek(&"prefix_key0".as_bytes());
assert!(block.valid());
assert_eq!(
current_key_val(&block),
Some((
"prefix_key1".as_bytes().to_vec(),
"value".as_bytes().to_vec()
))
);
block.seek(&"key1".as_bytes());
assert!(block.valid());
assert_eq!(
current_key_val(&block),
Some(("key1".as_bytes().to_vec(), "value1".as_bytes().to_vec()))
);
block.seek(&"prefix_key3".as_bytes());
assert!(block.valid());
assert_eq!(
current_key_val(&block),
Some((
"prefix_key3".as_bytes().to_vec(),
"value".as_bytes().to_vec()
))
);
block.seek(&"prefix_key8".as_bytes());
assert!(!block.valid());
assert_eq!(current_key_val(&block), None);
}