mirror of https://github.com/aya-rs/aya
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
927 B
Rust
30 lines
927 B
Rust
use object::{Object, ObjectSection, ObjectSymbol, SymbolSection};
|
|
|
|
#[test]
|
|
fn prog_sections() {
|
|
let obj_file = object::File::parse(crate::XDP_SEC).unwrap();
|
|
|
|
assert!(has_symbol(&obj_file, "xdp", "xdp_plain"));
|
|
assert!(has_symbol(&obj_file, "xdp.frags", "xdp_frags"));
|
|
assert!(has_symbol(&obj_file, "xdp/cpumap", "xdp_cpumap"));
|
|
assert!(has_symbol(&obj_file, "xdp/devmap", "xdp_devmap"));
|
|
assert!(has_symbol(
|
|
&obj_file,
|
|
"xdp.frags/cpumap",
|
|
"xdp_frags_cpumap"
|
|
));
|
|
assert!(has_symbol(
|
|
&obj_file,
|
|
"xdp.frags/devmap",
|
|
"xdp_frags_devmap"
|
|
));
|
|
}
|
|
|
|
fn has_symbol(obj_file: &object::File, sec_name: &str, sym_name: &str) -> bool {
|
|
let sec = obj_file.section_by_name(sec_name).expect(sec_name);
|
|
let sec = SymbolSection::Section(sec.index());
|
|
obj_file
|
|
.symbols()
|
|
.any(|sym| sym.section() == sec && sym.name() == Ok(sym_name))
|
|
}
|