mirror of
https://github.com/aya-rs/aya.git
synced 2026-10-17 01:49:05 +02:00
We're seeing 429 from Github trying to download gen_init_cpio, so cache it using actions cache. Since I'm here add this for kernel images as well to save time waiting on slow Debian servers.
1.3 KiB
1.3 KiB
Aya Integration Tests
The aya integration test suite is a set of tests to ensure that common usage behaviours work on real Linux distros
Prerequisites
You'll need:
rustup toolchain install nightlyrustup target add {aarch64,x86_64}-unknown-linux-muslcargo install bpf-linkerlibelf-dev(libelf-develon rpm-based distros)llvm(forllvm-objcopy)- (virtualized only)
qemu
Usage
From the root of this repository:
Native
cargo xtask integration-test local
Virtualized
cargo xtask integration-test vm --cache-dir <CACHE_DIR> <KERNEL_IMAGE>...
Writing an integration test
Tests should follow these guidelines:
- Rust eBPF code should live in
integration-ebpf/${NAME}.rsand included inintegration-ebpf/Cargo.tomlandintegration-test/src/lib.rsusinginclude_bytes_aligned!. - C eBPF code should live in
integration-test/bpf/${NAME}.bpf.c. It should be added to the list of files inintegration-test/build.rsand the list of constants inintegration-test/src/lib.rsusinginclude_bytes_aligned!. - Tests should be added to
integration-test/tests. - You may add a new module, or use an existing one.
- Test functions should not return
anyhow::Result<()>since this produces errors without stack traces. Prefer topanic!instead.