diff options
Diffstat (limited to 'embassy-embedded-hal/src/adapter/yielding_async.rs')
| -rw-r--r-- | embassy-embedded-hal/src/adapter/yielding_async.rs | 62 |
1 files changed, 7 insertions, 55 deletions
diff --git a/embassy-embedded-hal/src/adapter/yielding_async.rs b/embassy-embedded-hal/src/adapter/yielding_async.rs index 96d5cca8e..f51e4076f 100644 --- a/embassy-embedded-hal/src/adapter/yielding_async.rs +++ b/embassy-embedded-hal/src/adapter/yielding_async.rs | |||
| @@ -167,66 +167,18 @@ mod tests { | |||
| 167 | use embedded_storage_async::nor_flash::NorFlash; | 167 | use embedded_storage_async::nor_flash::NorFlash; |
| 168 | 168 | ||
| 169 | use super::*; | 169 | use super::*; |
| 170 | 170 | use crate::flash::mem_flash::MemFlash; | |
| 171 | extern crate std; | ||
| 172 | |||
| 173 | #[derive(Default)] | ||
| 174 | struct FakeFlash(Vec<(u32, u32)>); | ||
| 175 | |||
| 176 | impl embedded_storage::nor_flash::ErrorType for FakeFlash { | ||
| 177 | type Error = std::convert::Infallible; | ||
| 178 | } | ||
| 179 | |||
| 180 | impl embedded_storage_async::nor_flash::ReadNorFlash for FakeFlash { | ||
| 181 | const READ_SIZE: usize = 1; | ||
| 182 | |||
| 183 | async fn read(&mut self, _offset: u32, _bytes: &mut [u8]) -> Result<(), Self::Error> { | ||
| 184 | unimplemented!() | ||
| 185 | } | ||
| 186 | |||
| 187 | fn capacity(&self) -> usize { | ||
| 188 | unimplemented!() | ||
| 189 | } | ||
| 190 | } | ||
| 191 | |||
| 192 | impl embedded_storage_async::nor_flash::NorFlash for FakeFlash { | ||
| 193 | const WRITE_SIZE: usize = 4; | ||
| 194 | const ERASE_SIZE: usize = 128; | ||
| 195 | |||
| 196 | async fn write(&mut self, _offset: u32, _bytes: &[u8]) -> Result<(), Self::Error> { | ||
| 197 | unimplemented!() | ||
| 198 | } | ||
| 199 | |||
| 200 | async fn erase(&mut self, from: u32, to: u32) -> Result<(), Self::Error> { | ||
| 201 | self.0.push((from, to)); | ||
| 202 | Ok(()) | ||
| 203 | } | ||
| 204 | } | ||
| 205 | 171 | ||
| 206 | #[futures_test::test] | 172 | #[futures_test::test] |
| 207 | async fn can_erase() { | 173 | async fn can_erase() { |
| 208 | let fake = FakeFlash::default(); | 174 | let flash = MemFlash::<1024, 128, 4>::new(0x00); |
| 209 | let mut yielding = YieldingAsync::new(fake); | 175 | let mut yielding = YieldingAsync::new(flash); |
| 210 | 176 | ||
| 211 | yielding.erase(0, 256).await.unwrap(); | 177 | yielding.erase(0, 256).await.unwrap(); |
| 212 | 178 | ||
| 213 | let fake = yielding.wrapped; | 179 | let flash = yielding.wrapped; |
| 214 | assert_eq!(2, fake.0.len()); | 180 | assert_eq!(2, flash.erases.len()); |
| 215 | assert_eq!((0, 128), fake.0[0]); | 181 | assert_eq!((0, 128), flash.erases[0]); |
| 216 | assert_eq!((128, 256), fake.0[1]); | 182 | assert_eq!((128, 256), flash.erases[1]); |
| 217 | } | ||
| 218 | |||
| 219 | #[futures_test::test] | ||
| 220 | async fn can_erase_wrong_erase_size() { | ||
| 221 | let fake = FakeFlash::default(); | ||
| 222 | let mut yielding = YieldingAsync::new(fake); | ||
| 223 | |||
| 224 | yielding.erase(0, 257).await.unwrap(); | ||
| 225 | |||
| 226 | let fake = yielding.wrapped; | ||
| 227 | assert_eq!(3, fake.0.len()); | ||
| 228 | assert_eq!((0, 128), fake.0[0]); | ||
| 229 | assert_eq!((128, 256), fake.0[1]); | ||
| 230 | assert_eq!((256, 257), fake.0[2]); | ||
| 231 | } | 183 | } |
| 232 | } | 184 | } |
