Mercurial > lbo > hg > leveldb-rs
changeset 220:0a51bc6b7f97
table_reader: add test for approx_offset_of()
author | Lewin Bormann <lbo@spheniscida.de> |
---|---|
date | Sat, 09 Sep 2017 17:20:26 +0200 |
parents | 7ee8c2fc7756 |
children | d7de5c816802 |
files | src/table_reader.rs |
diffstat | 1 files changed, 20 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/table_reader.rs Sat Sep 09 15:52:05 2017 +0200 +++ b/src/table_reader.rs Sat Sep 09 17:20:26 2017 +0200 @@ -484,7 +484,26 @@ } #[test] - fn test_table_cache_use() { + fn test_table_approximate_offset() { + let (src, size) = build_table(build_data()); + let mut opt = Options::default(); + opt.block_size = 32; + let table = Table::new_raw(opt, wrap_buffer(src), size).unwrap(); + let mut iter = table.iter(); + + let expected_offsets = vec![0,0,0,42,42,42,86]; + let mut i = 0; + for (k, _) in LdbIteratorIter::wrap(&mut iter) { + assert_eq!(expected_offsets[i], table.approx_offset_of(&k)); + i += 1; + } + + // Key-past-last returns offset of metaindex block. + assert_eq!(132, table.approx_offset_of("{aa".as_bytes())); + } + + #[test] + fn test_table_block_cache_use() { let (src, size) = build_table(build_data()); let mut opt = Options::default(); opt.block_size = 32;