@ -1594,6 +1594,7 @@ mod tests {
#[ test ]
fn sanitizes_empty_btf_files_to_none ( ) {
let mut obj = fake_obj ( ) ;
#[ cfg(target_endian = " little " ) ]
obj . parse_section ( fake_section (
EbpfSectionKind ::Btf ,
".BTF" ,
@ -1603,6 +1604,18 @@ mod tests {
None ,
) )
. unwrap ( ) ;
#[ cfg(target_endian = " big " ) ]
obj . parse_section ( fake_section (
EbpfSectionKind ::Btf ,
".BTF" ,
& [
235 , 159 , 1 , 0 , 0 , 0 , 0 , 24 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 ,
] ,
None ,
) )
. unwrap ( ) ;
#[ cfg(target_endian = " little " ) ]
obj . parse_section ( fake_section (
EbpfSectionKind ::BtfExt ,
".BTF.ext" ,
@ -1613,6 +1626,17 @@ mod tests {
None ,
) )
. unwrap ( ) ;
#[ cfg(target_endian = " big " ) ]
obj . parse_section ( fake_section (
EbpfSectionKind ::BtfExt ,
".BTF.ext" ,
& [
235 , 129 , 1 , 0 , 0 , 0 , 0 , 24 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 0 , 0 , 4 , 0 , 0 , 0 , 4 , 0 , 0 ,
0 , 8 , 0 , 0 , 0 , 16 ,
] ,
None ,
) )
. unwrap ( ) ;
let btf = obj . fixup_and_sanitize_btf ( & BtfFeatures ::default ( ) ) . unwrap ( ) ;
assert! ( btf . is_none ( ) ) ;
@ -2588,6 +2612,7 @@ mod tests {
// generated from:
// objcopy --dump-section .BTF=test.btf ./target/bpfel-unknown-none/debug/multimap-btf.bpf.o
// hexdump -v -e '7/1 "0x%02X, " 1/1 " 0x%02X,\n"' test.btf
#[ cfg(target_endian = " little " ) ]
let data : & [ u8 ] = & [
0x9F , 0xEB , 0x01 , 0x00 , 0x18 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0xF0 , 0x01 ,
0x00 , 0x00 , 0xF0 , 0x01 , 0x00 , 0x00 , 0xCC , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
@ -2660,6 +2685,79 @@ mod tests {
0x63 , 0x68 , 0x61 , 0x72 , 0x00 , 0x5F , 0x6C , 0x69 , 0x63 , 0x65 , 0x6E , 0x73 , 0x65 , 0x00 ,
0x2E , 0x6D , 0x61 , 0x70 , 0x73 , 0x00 , 0x6C , 0x69 , 0x63 , 0x65 , 0x6E , 0x73 , 0x65 , 0x00 ,
] ;
#[ cfg(target_endian = " big " ) ]
let data : & [ u8 ] = & [
0xEB , 0x9F , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x18 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x01 , 0xF0 , 0x00 , 0x00 , 0x01 , 0xF0 , 0x00 , 0x00 , 0x01 , 0xCC , 0x00 , 0x00 , 0x00 , 0x00 ,
0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0x00 , 0x00 , 0x00 , 0x01 , 0x01 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x04 , 0x01 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 ,
0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x05 , 0x01 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x06 , 0x00 , 0x00 , 0x00 , 0x19 , 0x08 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x07 , 0x00 , 0x00 , 0x00 , 0x1F , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x09 , 0x00 , 0x00 , 0x00 , 0x2C , 0x08 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x0A , 0x00 , 0x00 , 0x00 , 0x32 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x08 ,
0x00 , 0x00 , 0x00 , 0x40 , 0x00 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x0C , 0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x45 ,
0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x4A , 0x00 , 0x00 ,
0x00 , 0x05 , 0x00 , 0x00 , 0x00 , 0x40 , 0x00 , 0x00 , 0x00 , 0x4E , 0x00 , 0x00 , 0x00 , 0x08 ,
0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x54 , 0x00 , 0x00 , 0x00 , 0x0B , 0x00 , 0x00 ,
0x00 , 0xC0 , 0x00 , 0x00 , 0x00 , 0x60 , 0x0E , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0D ,
0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 ,
0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x45 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x4A , 0x00 , 0x00 , 0x00 , 0x05 , 0x00 , 0x00 , 0x00 , 0x40 , 0x00 , 0x00 ,
0x00 , 0x4E , 0x00 , 0x00 , 0x00 , 0x08 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x54 ,
0x00 , 0x00 , 0x00 , 0x0B , 0x00 , 0x00 , 0x00 , 0xC0 , 0x00 , 0x00 , 0x00 , 0x66 , 0x0E , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0F , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0D , 0x00 ,
0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x6C , 0x00 , 0x00 , 0x00 , 0x11 ,
0x00 , 0x00 , 0x00 , 0x70 , 0x0C , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 , 0x00 , 0x12 , 0x00 , 0x00 ,
0x01 , 0xB0 , 0x01 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x01 , 0x01 , 0x00 , 0x00 , 0x08 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x03 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x14 , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x00 , 0x04 , 0x00 , 0x00 , 0x01 , 0xB5 ,
0x0E , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x15 , 0x00 , 0x00 , 0x00 , 0x01 , 0x00 , 0x00 ,
0x01 , 0xBE , 0x0F , 0x00 , 0x00 , 0x02 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x0E ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 , 0x00 , 0x10 , 0x00 , 0x00 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x20 , 0x00 , 0x00 , 0x01 , 0xC4 , 0x0F , 0x00 , 0x00 , 0x01 ,
0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x16 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ,
0x00 , 0x04 , 0x00 , 0x69 , 0x6E , 0x74 , 0x00 , 0x5F , 0x5F , 0x41 , 0x52 , 0x52 , 0x41 , 0x59 ,
0x5F , 0x53 , 0x49 , 0x5A , 0x45 , 0x5F , 0x54 , 0x59 , 0x50 , 0x45 , 0x5F , 0x5F , 0x00 , 0x5F ,
0x5F , 0x75 , 0x33 , 0x32 , 0x00 , 0x75 , 0x6E , 0x73 , 0x69 , 0x67 , 0x6E , 0x65 , 0x64 , 0x20 ,
0x69 , 0x6E , 0x74 , 0x00 , 0x5F , 0x5F , 0x75 , 0x36 , 0x34 , 0x00 , 0x75 , 0x6E , 0x73 , 0x69 ,
0x67 , 0x6E , 0x65 , 0x64 , 0x20 , 0x6C , 0x6F , 0x6E , 0x67 , 0x20 , 0x6C , 0x6F , 0x6E , 0x67 ,
0x00 , 0x74 , 0x79 , 0x70 , 0x65 , 0x00 , 0x6B , 0x65 , 0x79 , 0x00 , 0x76 , 0x61 , 0x6C , 0x75 ,
0x65 , 0x00 , 0x6D , 0x61 , 0x78 , 0x5F , 0x65 , 0x6E , 0x74 , 0x72 , 0x69 , 0x65 , 0x73 , 0x00 ,
0x6D , 0x61 , 0x70 , 0x5F , 0x31 , 0x00 , 0x6D , 0x61 , 0x70 , 0x5F , 0x32 , 0x00 , 0x63 , 0x74 ,
0x78 , 0x00 , 0x62 , 0x70 , 0x66 , 0x5F , 0x70 , 0x72 , 0x6F , 0x67 , 0x00 , 0x74 , 0x72 , 0x61 ,
0x63 , 0x65 , 0x70 , 0x6F , 0x69 , 0x6E , 0x74 , 0x00 , 0x2F , 0x76 , 0x61 , 0x72 , 0x2F , 0x68 ,
0x6F , 0x6D , 0x65 , 0x2F , 0x64 , 0x61 , 0x76 , 0x65 , 0x2F , 0x64 , 0x65 , 0x76 , 0x2F , 0x61 ,
0x79 , 0x61 , 0x2D , 0x72 , 0x73 , 0x2F , 0x61 , 0x79 , 0x61 , 0x2F , 0x74 , 0x65 , 0x73 , 0x74 ,
0x2F , 0x69 , 0x6E , 0x74 , 0x65 , 0x67 , 0x72 , 0x61 , 0x74 , 0x69 , 0x6F , 0x6E , 0x2D , 0x65 ,
0x62 , 0x70 , 0x66 , 0x2F , 0x73 , 0x72 , 0x63 , 0x2F , 0x62 , 0x70 , 0x66 , 0x2F , 0x6D , 0x75 ,
0x6C , 0x74 , 0x69 , 0x6D , 0x61 , 0x70 , 0x2D , 0x62 , 0x74 , 0x66 , 0x2E , 0x62 , 0x70 , 0x66 ,
0x2E , 0x63 , 0x00 , 0x69 , 0x6E , 0x74 , 0x20 , 0x62 , 0x70 , 0x66 , 0x5F , 0x70 , 0x72 , 0x6F ,
0x67 , 0x28 , 0x76 , 0x6F , 0x69 , 0x64 , 0x20 , 0x2A , 0x63 , 0x74 , 0x78 , 0x29 , 0x00 , 0x09 ,
0x5F , 0x5F , 0x75 , 0x33 , 0x32 , 0x20 , 0x6B , 0x65 , 0x79 , 0x20 , 0x3D , 0x20 , 0x30 , 0x3B ,
0x00 , 0x09 , 0x5F , 0x5F , 0x75 , 0x36 , 0x34 , 0x20 , 0x74 , 0x77 , 0x65 , 0x6E , 0x74 , 0x79 ,
0x5F , 0x66 , 0x6F , 0x75 , 0x72 , 0x20 , 0x3D , 0x20 , 0x32 , 0x34 , 0x3B , 0x00 , 0x09 , 0x5F ,
0x5F , 0x75 , 0x36 , 0x34 , 0x20 , 0x66 , 0x6F , 0x72 , 0x74 , 0x79 , 0x5F , 0x74 , 0x77 , 0x6F ,
0x20 , 0x3D , 0x20 , 0x34 , 0x32 , 0x3B , 0x00 , 0x20 , 0x20 , 0x20 , 0x20 , 0x62 , 0x70 , 0x66 ,
0x5F , 0x6D , 0x61 , 0x70 , 0x5F , 0x75 , 0x70 , 0x64 , 0x61 , 0x74 , 0x65 , 0x5F , 0x65 , 0x6C ,
0x65 , 0x6D , 0x28 , 0x26 , 0x6D , 0x61 , 0x70 , 0x5F , 0x31 , 0x2C , 0x20 , 0x26 , 0x6B , 0x65 ,
0x79 , 0x2C , 0x20 , 0x26 , 0x74 , 0x77 , 0x65 , 0x6E , 0x74 , 0x79 , 0x5F , 0x66 , 0x6F , 0x75 ,
0x72 , 0x2C , 0x20 , 0x42 , 0x50 , 0x46 , 0x5F , 0x41 , 0x4E , 0x59 , 0x29 , 0x3B , 0x00 , 0x20 ,
0x20 , 0x20 , 0x20 , 0x62 , 0x70 , 0x66 , 0x5F , 0x6D , 0x61 , 0x70 , 0x5F , 0x75 , 0x70 , 0x64 ,
0x61 , 0x74 , 0x65 , 0x5F , 0x65 , 0x6C , 0x65 , 0x6D , 0x28 , 0x26 , 0x6D , 0x61 , 0x70 , 0x5F ,
0x32 , 0x2C , 0x20 , 0x26 , 0x6B , 0x65 , 0x79 , 0x2C , 0x20 , 0x26 , 0x66 , 0x6F , 0x72 , 0x74 ,
0x79 , 0x5F , 0x74 , 0x77 , 0x6F , 0x2C , 0x20 , 0x42 , 0x50 , 0x46 , 0x5F , 0x41 , 0x4E , 0x59 ,
0x29 , 0x3B , 0x00 , 0x09 , 0x72 , 0x65 , 0x74 , 0x75 , 0x72 , 0x6E , 0x20 , 0x30 , 0x3B , 0x00 ,
0x63 , 0x68 , 0x61 , 0x72 , 0x00 , 0x5F , 0x6C , 0x69 , 0x63 , 0x65 , 0x6E , 0x73 , 0x65 , 0x00 ,
0x2E , 0x6D , 0x61 , 0x70 , 0x73 , 0x00 , 0x6C , 0x69 , 0x63 , 0x65 , 0x6E , 0x73 , 0x65 , 0x00 ,
] ;
let btf_section = fake_section ( EbpfSectionKind ::Btf , ".BTF" , data , None ) ;
obj . parse_section ( btf_section ) . unwrap ( ) ;