From e4d054275d7ab9ecb4dc384263c4fb3415f75800 Mon Sep 17 00:00:00 2001 From: Wouter Dullaert Date: Fri, 13 Sep 2024 11:23:04 +0200 Subject: [PATCH] fix(examples): Restructure allowed_memory test Moving the source code for the ebpf program into a subfolder will prevent it from accidentally being run as an example. We are still committing the resulting object file, to prevent creating a hard dependency on the aya build toolchain to run the example tests in this repository. Signed-off-by: Wouter Dullaert --- examples/allowed-memory.o | Bin 46352 -> 0 bytes examples/allowed-memory/.cargo/config.toml | 6 ++++ examples/allowed-memory/Cargo.toml | 31 ++++++++++++++++++ examples/allowed-memory/allowed-memory.o | Bin 0 -> 46376 bytes examples/allowed-memory/rust-toolchain.toml | 13 ++++++++ .../src/main.rs} | 0 examples/allowed_memory.rs | 11 ++----- 7 files changed, 52 insertions(+), 9 deletions(-) delete mode 100644 examples/allowed-memory.o create mode 100644 examples/allowed-memory/.cargo/config.toml create mode 100644 examples/allowed-memory/Cargo.toml create mode 100644 examples/allowed-memory/allowed-memory.o create mode 100644 examples/allowed-memory/rust-toolchain.toml rename examples/{ebpf-allowed-memory.rs => allowed-memory/src/main.rs} (100%) diff --git a/examples/allowed-memory.o b/examples/allowed-memory.o deleted file mode 100644 index 4b15bef589c5b1947bd4c6ac34c82f6dc93100e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46352 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 CP=ZeY literal 0 HcmV?d00001 diff --git a/examples/allowed-memory/rust-toolchain.toml b/examples/allowed-memory/rust-toolchain.toml new file mode 100644 index 00000000..24ce3918 --- /dev/null +++ b/examples/allowed-memory/rust-toolchain.toml @@ -0,0 +1,13 @@ +[toolchain] +channel = "nightly" +# The source code of rustc, provided by the rust-src component, is needed for +# building eBPF programs. +components = [ + "cargo", + "clippy", + "rust-docs", + "rust-src", + "rust-std", + "rustc", + "rustfmt", +] diff --git a/examples/ebpf-allowed-memory.rs b/examples/allowed-memory/src/main.rs similarity index 100% rename from examples/ebpf-allowed-memory.rs rename to examples/allowed-memory/src/main.rs diff --git a/examples/allowed_memory.rs b/examples/allowed_memory.rs index 554f5fe3..cd84c241 100644 --- a/examples/allowed_memory.rs +++ b/examples/allowed_memory.rs @@ -8,14 +8,7 @@ use std::{iter::FromIterator, ptr::addr_of}; extern crate rbpf; -// The following example uses an ELF file that was compiled from the ebpf-allowed-memory.rs file -// It is built using the [aya framework](https://aya-rs.dev/). -// Once the aya dependencies (rust-nightly, latest llvm and latest bpf-linker) are installed, it -// can be compiled via -// -// ```bash -// cargo build --target=bpfel-unknown-none -Z build-std=core -// ``` +const OBJ_FILE_PATH: &str = "examples/allowed-memory/allowed-memory.o"; const BPF_MAP_LOOKUP_ELEM_IDX: u32 = 1; @@ -41,7 +34,7 @@ fn bpf_lookup_elem(_map: u64, key_addr: u64, _flags: u64, _u4: u64, _u5: u64) -> } fn main() { - let file = elf::File::open_path("examples/allowed-memory.o").unwrap(); + let file = elf::File::open_path(OBJ_FILE_PATH).unwrap(); let func = file.get_section("classifier").unwrap(); let mut vm = rbpf::EbpfVmNoData::new(Some(&func.data)).unwrap();