Hi,
Changes since v2:
- Added VMTEST_DIR environment variable and --vmtest-dir option to specify
the directory for kernel artifacts
- Build and store kernel-specific bpftool and vmlinux.h for each kernel,
using these when compiling BPF programs instead of relying on host versions
- Added 'bpf compile' subcommand to build BPF bytecode using the kernel
specific vmlinux.h file
- Added kernel management commands: build, list, and remove
- Improved error handling
- Better output
during kernel builds
- Removed --kernel-image option to simplify test execution. Support for
specifying custom locations for kernel image, bpftool, and vmlinux.h
can be added in future versions if needed
Changes have been squashed into appropriate commits for a clean commit history.
Thanks
Piyush Raj (3):
contrib: add bpf-vmtest-tool to test BPF programs
testsuite: bpf: add DejaGnu board for bpf-unknown-none target
testsuite: bpf: Add initial BPF runtime tests
contrib/bpf-vmtest-tool/README | 157 ++++++++++
contrib/bpf-vmtest-tool/bpf.py | 221 +++++++++++++
contrib/bpf-vmtest-tool/config.py | 50 +++
contrib/bpf-vmtest-tool/kernel.py | 290 ++++++++++++++++++
contrib/bpf-vmtest-tool/main.py | 285 +++++++++++++++++
contrib/bpf-vmtest-tool/pyproject.toml | 36 +++
contrib/bpf-vmtest-tool/tests/test_cli.py | 219 +++++++++++++
contrib/bpf-vmtest-tool/utils.py | 31 ++
contrib/bpf-vmtest-tool/vm.py | 169 ++++++++++
gcc/Makefile.in | 1 +
gcc/testsuite/boards/bpf.exp | 123 ++++++++
.../gcc.target/bpf/torture/bpf-torture.exp | 46 +++
.../bpf/torture/invalid-memory-access.c | 18 ++
gcc/testsuite/gcc.target/bpf/torture/memcpy.c | 5 +
.../gcc.target/bpf/torture/memmove.c | 6 +
gcc/testsuite/gcc.target/bpf/torture/memset.c | 5 +
gcc/testsuite/gcc.target/bpf/torture/naked.c | 3 +
gcc/testsuite/gcc.target/bpf/torture/nop.c | 4 +
.../gcc.target/bpf/torture/trace_openat.c | 23 ++
19 files changed, 1692 insertions(+)
create mode 100644 contrib/bpf-vmtest-tool/README
create mode 100644 contrib/bpf-vmtest-tool/bpf.py
create mode 100644 contrib/bpf-vmtest-tool/config.py
create mode 100644 contrib/bpf-vmtest-tool/kernel.py
create mode 100644 contrib/bpf-vmtest-tool/main.py
create mode 100644 contrib/bpf-vmtest-tool/pyproject.toml
create mode 100644 contrib/bpf-vmtest-tool/tests/test_cli.py
create mode 100644 contrib/bpf-vmtest-tool/utils.py
create mode 100644 contrib/bpf-vmtest-tool/vm.py
create mode 100644 gcc/testsuite/boards/bpf.exp
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/bpf-torture.exp
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/invalid-memory-access.c
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/memcpy.c
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/memmove.c
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/memset.c
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/naked.c
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/nop.c
create mode 100644 gcc/testsuite/gcc.target/bpf/torture/trace_openat.c
--
2.52.0