mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-10 21:37:22 +00:00
init cache on restart (#3486)
This commit is contained in:
committed by
Bastian Köcher
parent
b80e611218
commit
8f29199076
@@ -1030,26 +1030,37 @@ pub(crate) mod tests {
|
||||
|
||||
#[test]
|
||||
fn cache_can_be_initialized_after_genesis_inserted() {
|
||||
let db = LightStorage::<Block>::new_test();
|
||||
let (genesis_hash, storage) = {
|
||||
let db = LightStorage::<Block>::new_test();
|
||||
|
||||
// before cache is initialized => None
|
||||
assert_eq!(db.cache().get_at(b"test", &BlockId::Number(0)), None);
|
||||
// before cache is initialized => None
|
||||
assert_eq!(db.cache().get_at(b"test", &BlockId::Number(0)), None);
|
||||
|
||||
// insert genesis block (no value for cache is provided)
|
||||
let mut genesis_hash = None;
|
||||
insert_block(&db, HashMap::new(), || {
|
||||
let header = default_header(&Default::default(), 0);
|
||||
genesis_hash = Some(header.hash());
|
||||
header
|
||||
});
|
||||
// insert genesis block (no value for cache is provided)
|
||||
let mut genesis_hash = None;
|
||||
insert_block(&db, HashMap::new(), || {
|
||||
let header = default_header(&Default::default(), 0);
|
||||
genesis_hash = Some(header.hash());
|
||||
header
|
||||
});
|
||||
|
||||
// after genesis is inserted => None
|
||||
assert_eq!(db.cache().get_at(b"test", &BlockId::Number(0)), None);
|
||||
// after genesis is inserted => None
|
||||
assert_eq!(db.cache().get_at(b"test", &BlockId::Number(0)), None);
|
||||
|
||||
// initialize cache
|
||||
db.cache().initialize(b"test", vec![42]).unwrap();
|
||||
// initialize cache
|
||||
db.cache().initialize(b"test", vec![42]).unwrap();
|
||||
|
||||
// after genesis is inserted + cache is initialized => Some
|
||||
// after genesis is inserted + cache is initialized => Some
|
||||
assert_eq!(
|
||||
db.cache().get_at(b"test", &BlockId::Number(0)),
|
||||
Some(((0, genesis_hash.unwrap()), None, vec![42])),
|
||||
);
|
||||
|
||||
(genesis_hash, db.db)
|
||||
};
|
||||
|
||||
// restart && check that after restart value is read from the cache
|
||||
let db = LightStorage::<Block>::from_kvdb(storage as Arc<_>).expect("failed to create test-db");
|
||||
assert_eq!(
|
||||
db.cache().get_at(b"test", &BlockId::Number(0)),
|
||||
Some(((0, genesis_hash.unwrap()), None, vec![42])),
|
||||
|
||||
Reference in New Issue
Block a user