integration-test: add tc_name_limit_exceeded

This test is to ensure that attaching a tc program that has
a name longer than the maximum allowed length by the kernel
will fail.

Signed-off-by: Mohammad Javad Pooladkhay <m.pooladkhay@gmail.com>
reviewable/pr728/r5
Mohammad Javad Pooladkhay 2 years ago
parent 716a29ad16
commit f47eca8860

@ -48,6 +48,10 @@ path = "src/two_progs.rs"
name = "tc_name_limit" name = "tc_name_limit"
path = "src/tc_name_limit.rs" path = "src/tc_name_limit.rs"
[[bin]]
name = "tc_name_limit_exceeded"
path = "src/tc_name_limit_exceeded.rs"
[[bin]] [[bin]]
name = "redirect" name = "redirect"
path = "src/redirect.rs" path = "src/redirect.rs"

@ -0,0 +1,25 @@
#![no_std]
#![no_main]
use aya_bpf::{macros::classifier, programs::TcContext};
/*
A function with a 257-byte-long name (all 'a's) to be used as the name of
the ebpf program. This name must match the name passed to userspace side
of the program (i.e. test/integration-test/src/tests/load.rs).
256 is the maximum length allowed by the kernel, so this test should fail.
https://github.com/torvalds/linux/blob/02aee814/net/sched/cls_bpf.c#L28
*/
#[classifier]
pub fn aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
_ctx: TcContext,
) -> i32 {
0
}
#[cfg(not(test))]
#[panic_handler]
fn panic(_info: &core::panic::PanicInfo) -> ! {
loop {}
}

@ -15,6 +15,8 @@ pub const MAP_TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/ma
pub const NAME_TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/name_test")); pub const NAME_TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/name_test"));
pub const TC_NAME_LIMIT_TEST: &[u8] = pub const TC_NAME_LIMIT_TEST: &[u8] =
include_bytes_aligned!(concat!(env!("OUT_DIR"), "/tc_name_limit")); include_bytes_aligned!(concat!(env!("OUT_DIR"), "/tc_name_limit"));
pub const TC_NAME_LIMIT_EXCEEDED_TEST: &[u8] =
include_bytes_aligned!(concat!(env!("OUT_DIR"), "/tc_name_limit_exceeded"));
pub const PASS: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/pass")); pub const PASS: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/pass"));
pub const TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/test")); pub const TEST: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/test"));
pub const RELOCATIONS: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/relocations")); pub const RELOCATIONS: &[u8] = include_bytes_aligned!(concat!(env!("OUT_DIR"), "/relocations"));

Loading…
Cancel
Save