Move choice between prod and test storage to embedded_flash module
This way all users of storage can share the logic to choose between flash or RAM storage depending on the "std" feature. This is needed because the store_latency example assumes flash storage but is built when running `cargo test --features=std`.
This commit is contained in:
@@ -17,3 +17,36 @@ mod syscall;
|
||||
|
||||
#[cfg(not(feature = "std"))]
|
||||
pub use self::syscall::SyscallStorage;
|
||||
|
||||
/// Storage definition for production.
|
||||
#[cfg(not(feature = "std"))]
|
||||
mod prod {
|
||||
pub type Storage = super::SyscallStorage;
|
||||
|
||||
pub fn new_storage(num_pages: usize) -> Storage {
|
||||
Storage::new(num_pages).unwrap()
|
||||
}
|
||||
}
|
||||
#[cfg(not(feature = "std"))]
|
||||
pub use self::prod::{new_storage, Storage};
|
||||
|
||||
/// Storage definition for testing.
|
||||
#[cfg(feature = "std")]
|
||||
mod test {
|
||||
pub type Storage = persistent_store::BufferStorage;
|
||||
|
||||
pub fn new_storage(num_pages: usize) -> Storage {
|
||||
const PAGE_SIZE: usize = 0x1000;
|
||||
let store = vec![0xff; num_pages * PAGE_SIZE].into_boxed_slice();
|
||||
let options = persistent_store::BufferOptions {
|
||||
word_size: 4,
|
||||
page_size: PAGE_SIZE,
|
||||
max_word_writes: 2,
|
||||
max_page_erases: 10000,
|
||||
strict_mode: true,
|
||||
};
|
||||
Storage::new(store, options)
|
||||
}
|
||||
}
|
||||
#[cfg(feature = "std")]
|
||||
pub use self::test::{new_storage, Storage};
|
||||
|
||||
Reference in New Issue
Block a user