|
@@ -1,5 +1,5 @@
|
|
use aya::{
|
|
use aya::{
|
|
- programs::{Extension, Xdp, XdpFlags},
|
|
|
|
|
|
+ programs::{Extension, TracePoint, Xdp, XdpFlags},
|
|
util::KernelVersion,
|
|
util::KernelVersion,
|
|
Bpf, BpfLoader,
|
|
Bpf, BpfLoader,
|
|
};
|
|
};
|
|
@@ -22,6 +22,28 @@ fn xdp() {
|
|
dispatcher.attach("lo", XdpFlags::default()).unwrap();
|
|
dispatcher.attach("lo", XdpFlags::default()).unwrap();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+#[test]
|
|
|
|
+fn two_progs() {
|
|
|
|
+ let mut bpf = Bpf::load(crate::TWO_PROGS).unwrap();
|
|
|
|
+
|
|
|
|
+ let prog_one: &mut TracePoint = bpf
|
|
|
|
+ .program_mut("test_tracepoint_one")
|
|
|
|
+ .unwrap()
|
|
|
|
+ .try_into()
|
|
|
|
+ .unwrap();
|
|
|
|
+
|
|
|
|
+ prog_one.load().unwrap();
|
|
|
|
+ prog_one.attach("sched", "sched_switch").unwrap();
|
|
|
|
+
|
|
|
|
+ let prog_two: &mut TracePoint = bpf
|
|
|
|
+ .program_mut("test_tracepoint_two")
|
|
|
|
+ .unwrap()
|
|
|
|
+ .try_into()
|
|
|
|
+ .unwrap();
|
|
|
|
+ prog_two.load().unwrap();
|
|
|
|
+ prog_two.attach("sched", "sched_switch").unwrap();
|
|
|
|
+}
|
|
|
|
+
|
|
#[test]
|
|
#[test]
|
|
fn extension() {
|
|
fn extension() {
|
|
let _netns = NetNsGuard::new();
|
|
let _netns = NetNsGuard::new();
|