@ -1,4 +1,8 @@
use std ::{ convert ::TryInto as _ , thread , time } ;
use std ::{
convert ::TryInto as _ ,
thread ,
time ::{ Duration , SystemTime } ,
} ;
use aya ::{
use aya ::{
maps ::Array ,
maps ::Array ,
@ -11,7 +15,7 @@ use aya::{
} ;
} ;
const MAX_RETRIES : usize = 100 ;
const MAX_RETRIES : usize = 100 ;
const RETRY_DURATION : time:: Duration = time ::Duration ::from_millis ( 10 ) ;
const RETRY_DURATION : Duration = Duration ::from_millis ( 10 ) ;
#[ test ]
#[ test ]
fn long_name ( ) {
fn long_name ( ) {
@ -145,6 +149,28 @@ fn unload_xdp() {
assert_unloaded ( "pass" ) ;
assert_unloaded ( "pass" ) ;
}
}
#[ test ]
fn test_loaded_at ( ) {
let mut bpf = Bpf ::load ( crate ::TEST ) . unwrap ( ) ;
let prog : & mut Xdp = bpf . program_mut ( "pass" ) . unwrap ( ) . try_into ( ) . unwrap ( ) ;
let t1 = SystemTime ::now ( ) ;
prog . load ( ) . unwrap ( ) ;
let t2 = SystemTime ::now ( ) ;
assert_loaded ( "pass" ) ;
let loaded_at = prog . info ( ) . unwrap ( ) . loaded_at ( ) ;
let range = t1 .. t2 ;
assert! (
range . contains ( & loaded_at ) ,
"{range:?}.contains({loaded_at:?})"
) ;
prog . unload ( ) . unwrap ( ) ;
assert_unloaded ( "pass" ) ;
}
#[ test ]
#[ test ]
fn unload_kprobe ( ) {
fn unload_kprobe ( ) {
let mut bpf = Bpf ::load ( crate ::TEST ) . unwrap ( ) ;
let mut bpf = Bpf ::load ( crate ::TEST ) . unwrap ( ) ;