Skip to content

Commit 6ea29e0

Browse files
committed
Add test_utils
We add a utility function needed by upcoming `KVStore` implementation tests.
1 parent 915fdbd commit 6ea29e0

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

lightning-persister/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010

1111
#[cfg(ldk_bench)] extern crate criterion;
1212

13+
#[cfg(test)]
14+
mod test_utils;
15+
1316
mod util;
1417

1518
extern crate lightning;

lightning-persister/src/test_utils.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
use lightning::util::persist::KVStore;
2+
3+
pub(crate) fn do_read_write_remove_list_persist<K: KVStore>(kv_store: &K) {
4+
use lightning::util::ser::Readable;
5+
6+
let data = [42u8; 32];
7+
8+
let namespace = "testspace";
9+
let key = "testkey";
10+
11+
// Test the basic KVStore operations.
12+
kv_store.write(namespace, key, &data).unwrap();
13+
14+
// Test empty namespace is allowed, but not empty key.
15+
kv_store.write("", key, &data).unwrap();
16+
assert!(kv_store.write(namespace, "", &data).is_err());
17+
18+
let listed_keys = kv_store.list(namespace).unwrap();
19+
assert_eq!(listed_keys.len(), 1);
20+
assert_eq!(listed_keys[0], key);
21+
22+
let mut reader = kv_store.read(namespace, key).unwrap();
23+
let read_data: [u8; 32] = Readable::read(&mut reader).unwrap();
24+
assert_eq!(data, read_data);
25+
26+
kv_store.remove(namespace, key).unwrap();
27+
28+
let listed_keys = kv_store.list(namespace).unwrap();
29+
assert_eq!(listed_keys.len(), 0);
30+
}

0 commit comments

Comments
 (0)