diff options
Diffstat (limited to 'embassy-boot/boot/src/lib.rs')
| -rw-r--r-- | embassy-boot/boot/src/lib.rs | 44 |
1 files changed, 10 insertions, 34 deletions
diff --git a/embassy-boot/boot/src/lib.rs b/embassy-boot/boot/src/lib.rs index d53c613a3..3109f2b47 100644 --- a/embassy-boot/boot/src/lib.rs +++ b/embassy-boot/boot/src/lib.rs | |||
| @@ -10,7 +10,7 @@ mod firmware_updater; | |||
| 10 | mod mem_flash; | 10 | mod mem_flash; |
| 11 | mod partition; | 11 | mod partition; |
| 12 | 12 | ||
| 13 | pub use boot_loader::{BootError, BootFlash, BootLoader, Flash, FlashConfig, MultiFlashConfig, SingleFlashConfig}; | 13 | pub use boot_loader::{BootError, BootFlash, BootLoader, FlashConfig, MultiFlashConfig, SingleFlashConfig}; |
| 14 | pub use firmware_updater::{FirmwareUpdater, FirmwareUpdaterError}; | 14 | pub use firmware_updater::{FirmwareUpdater, FirmwareUpdaterError}; |
| 15 | pub use partition::Partition; | 15 | pub use partition::Partition; |
| 16 | 16 | ||
| @@ -77,12 +77,8 @@ mod tests { | |||
| 77 | 77 | ||
| 78 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); | 78 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); |
| 79 | 79 | ||
| 80 | let mut magic = [0; 4]; | ||
| 81 | let mut page = [0; 4096]; | 80 | let mut page = [0; 4096]; |
| 82 | assert_eq!( | 81 | assert_eq!(State::Boot, bootloader.prepare_boot(&mut flash, &mut page).unwrap()); |
| 83 | State::Boot, | ||
| 84 | bootloader.prepare_boot(&mut flash, &mut magic, &mut page).unwrap() | ||
| 85 | ); | ||
| 86 | } | 82 | } |
| 87 | 83 | ||
| 88 | #[test] | 84 | #[test] |
| @@ -103,19 +99,14 @@ mod tests { | |||
| 103 | 99 | ||
| 104 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); | 100 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); |
| 105 | let mut updater = FirmwareUpdater::new(DFU, STATE); | 101 | let mut updater = FirmwareUpdater::new(DFU, STATE); |
| 106 | let mut offset = 0; | 102 | block_on(updater.write_firmware(0, &update, &mut flash)).unwrap(); |
| 107 | for chunk in update.chunks(4096) { | ||
| 108 | block_on(updater.write_firmware(offset, chunk, &mut flash)).unwrap(); | ||
| 109 | offset += chunk.len(); | ||
| 110 | } | ||
| 111 | block_on(updater.mark_updated(&mut flash, &mut aligned)).unwrap(); | 103 | block_on(updater.mark_updated(&mut flash, &mut aligned)).unwrap(); |
| 112 | 104 | ||
| 113 | let mut magic = [0; 4]; | 105 | let mut page = [0; 1024]; |
| 114 | let mut page = [0; 4096]; | ||
| 115 | assert_eq!( | 106 | assert_eq!( |
| 116 | State::Swap, | 107 | State::Swap, |
| 117 | bootloader | 108 | bootloader |
| 118 | .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut magic, &mut page) | 109 | .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut page) |
| 119 | .unwrap() | 110 | .unwrap() |
| 120 | ); | 111 | ); |
| 121 | 112 | ||
| @@ -132,7 +123,7 @@ mod tests { | |||
| 132 | assert_eq!( | 123 | assert_eq!( |
| 133 | State::Swap, | 124 | State::Swap, |
| 134 | bootloader | 125 | bootloader |
| 135 | .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut magic, &mut page) | 126 | .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut page) |
| 136 | .unwrap() | 127 | .unwrap() |
| 137 | ); | 128 | ); |
| 138 | 129 | ||
| @@ -150,7 +141,7 @@ mod tests { | |||
| 150 | assert_eq!( | 141 | assert_eq!( |
| 151 | State::Boot, | 142 | State::Boot, |
| 152 | bootloader | 143 | bootloader |
| 153 | .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut magic, &mut page) | 144 | .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut page) |
| 154 | .unwrap() | 145 | .unwrap() |
| 155 | ); | 146 | ); |
| 156 | } | 147 | } |
| @@ -176,25 +167,16 @@ mod tests { | |||
| 176 | 167 | ||
| 177 | let mut updater = FirmwareUpdater::new(DFU, STATE); | 168 | let mut updater = FirmwareUpdater::new(DFU, STATE); |
| 178 | 169 | ||
| 179 | let mut offset = 0; | 170 | block_on(updater.write_firmware(0, &update, &mut dfu)).unwrap(); |
| 180 | for chunk in update.chunks(2048) { | ||
| 181 | block_on(updater.write_firmware(offset, chunk, &mut dfu)).unwrap(); | ||
| 182 | offset += chunk.len(); | ||
| 183 | } | ||
| 184 | block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap(); | 171 | block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap(); |
| 185 | 172 | ||
| 186 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); | 173 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); |
| 187 | let mut magic = [0; 4]; | ||
| 188 | let mut page = [0; 4096]; | 174 | let mut page = [0; 4096]; |
| 189 | 175 | ||
| 190 | assert_eq!( | 176 | assert_eq!( |
| 191 | State::Swap, | 177 | State::Swap, |
| 192 | bootloader | 178 | bootloader |
| 193 | .prepare_boot( | 179 | .prepare_boot(&mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu), &mut page) |
| 194 | &mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu), | ||
| 195 | &mut magic, | ||
| 196 | &mut page | ||
| 197 | ) | ||
| 198 | .unwrap() | 180 | .unwrap() |
| 199 | ); | 181 | ); |
| 200 | 182 | ||
| @@ -229,22 +211,16 @@ mod tests { | |||
| 229 | 211 | ||
| 230 | let mut updater = FirmwareUpdater::new(DFU, STATE); | 212 | let mut updater = FirmwareUpdater::new(DFU, STATE); |
| 231 | 213 | ||
| 232 | let mut offset = 0; | 214 | block_on(updater.write_firmware(0, &update, &mut dfu)).unwrap(); |
| 233 | for chunk in update.chunks(4096) { | ||
| 234 | block_on(updater.write_firmware(offset, chunk, &mut dfu)).unwrap(); | ||
| 235 | offset += chunk.len(); | ||
| 236 | } | ||
| 237 | block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap(); | 215 | block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap(); |
| 238 | 216 | ||
| 239 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); | 217 | let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); |
| 240 | let mut magic = [0; 4]; | ||
| 241 | let mut page = [0; 4096]; | 218 | let mut page = [0; 4096]; |
| 242 | assert_eq!( | 219 | assert_eq!( |
| 243 | State::Swap, | 220 | State::Swap, |
| 244 | bootloader | 221 | bootloader |
| 245 | .prepare_boot( | 222 | .prepare_boot( |
| 246 | &mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu,), | 223 | &mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu,), |
| 247 | &mut magic, | ||
| 248 | &mut page | 224 | &mut page |
| 249 | ) | 225 | ) |
| 250 | .unwrap() | 226 | .unwrap() |
