@@ -244,7 +244,7 @@ mod tests {
244244 }
245245
246246 #[ test]
247- fn test_size_builder ( ) {
247+ fn test_builder ( ) {
248248 let builder = Multiboot2HeaderBuilder :: new ( HeaderTagISA :: I386 ) ;
249249 // Multiboot2 basic header + end tag
250250 let mut expected_len = 16 + 8 ;
@@ -274,14 +274,28 @@ mod tests {
274274 4096 ,
275275 RelocatableHeaderTagPreference :: None ,
276276 ) ) ;
277+ expected_len += 0x18 ;
278+ assert_eq ! ( builder. expected_len( ) , expected_len) ;
277279
278280 println ! ( "builder: {:#?}" , builder) ;
279281 println ! ( "expected_len: {} bytes" , builder. expected_len( ) ) ;
280282
281283 let mb2_hdr_data = builder. build ( ) ;
282284 let mb2_hdr = mb2_hdr_data. as_ptr ( ) as usize ;
283- let mb2_hdr = unsafe { Multiboot2Header :: from_addr ( mb2_hdr) } ;
285+ let mb2_hdr = unsafe { Multiboot2Header :: from_addr ( mb2_hdr) }
286+ . expect ( "the generated header to be loadable" ) ;
284287 println ! ( "{:#?}" , mb2_hdr) ;
288+ assert_eq ! (
289+ mb2_hdr. relocatable_tag( ) . unwrap( ) . flags( ) ,
290+ HeaderTagFlag :: Required
291+ ) ;
292+ assert_eq ! ( mb2_hdr. relocatable_tag( ) . unwrap( ) . min_addr( ) , 0x1337 ) ;
293+ assert_eq ! ( mb2_hdr. relocatable_tag( ) . unwrap( ) . max_addr( ) , 0xdeadbeef ) ;
294+ assert_eq ! ( mb2_hdr. relocatable_tag( ) . unwrap( ) . align( ) , 4096 ) ;
295+ assert_eq ! (
296+ mb2_hdr. relocatable_tag( ) . unwrap( ) . preference( ) ,
297+ RelocatableHeaderTagPreference :: None
298+ ) ;
285299
286300 /* you can write the binary to a file and a tool such as crate "bootinfo"
287301 will be able to fully parse the MB2 header
0 commit comments