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