0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 06:00:33 +03:00

nixosTests.bpf: handleTest -> runTest

This commit is contained in:
Sizhe Zhao 2025-06-07 18:46:07 +08:00
parent 16e6e74550
commit 4e792f525e
No known key found for this signature in database
GPG key ID: ED1807251A7DA08F
2 changed files with 40 additions and 42 deletions

View file

@ -269,7 +269,7 @@ in
borgbackup = runTest ./borgbackup.nix;
borgmatic = runTest ./borgmatic.nix;
botamusique = runTest ./botamusique.nix;
bpf = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./bpf.nix { };
bpf = runTestOn [ "x86_64-linux" "aarch64-linux" ] ./bpf.nix;
bpftune = runTest ./bpftune.nix;
breitbandmessung = runTest ./breitbandmessung.nix;
broadcast-box = runTest ./broadcast-box.nix;

View file

@ -1,44 +1,42 @@
import ./make-test-python.nix (
{ pkgs, ... }:
{
name = "bpf";
meta.maintainers = with pkgs.lib.maintainers; [ martinetd ];
{ lib, ... }:
{
name = "bpf";
meta.maintainers = with lib.maintainers; [ martinetd ];
nodes.machine =
{ pkgs, ... }:
{
programs.bcc.enable = true;
environment.systemPackages = with pkgs; [ bpftrace ];
};
nodes.machine =
{ pkgs, ... }:
{
programs.bcc.enable = true;
environment.systemPackages = with pkgs; [ bpftrace ];
};
testScript = ''
## bcc
# syscount -d 1 stops 1s after probe started so is good for that
print(machine.succeed("syscount -d 1"))
testScript = ''
## bcc
# syscount -d 1 stops 1s after probe started so is good for that
print(machine.succeed("syscount -d 1"))
## bpftrace
# list probes
machine.succeed("bpftrace -l")
# simple BEGIN probe (user probe on bpftrace itself)
print(machine.succeed("bpftrace -e 'BEGIN { print(\"ok\\n\"); exit(); }'"))
# tracepoint
print(machine.succeed("bpftrace -e 'tracepoint:syscalls:sys_enter_* { print(probe); exit() }'"))
# kprobe
print(machine.succeed("bpftrace -e 'kprobe:schedule { print(probe); exit() }'"))
# BTF
print(machine.succeed("bpftrace -e 'kprobe:schedule { "
" printf(\"tgid: %d\\n\", ((struct task_struct*) curtask)->tgid); exit() "
"}'"))
# module BTF (bpftrace >= 0.17)
# test is currently disabled on aarch64 as kfunc does not work there yet
# https://github.com/iovisor/bpftrace/issues/2496
print(machine.succeed("uname -m | grep aarch64 || "
"bpftrace -e 'kfunc:nft_trans_alloc_gfp { "
" printf(\"portid: %d\\n\", args->ctx->portid); "
"} BEGIN { exit() }'"))
# glibc includes
print(machine.succeed("bpftrace -e '#include <errno.h>\n"
"BEGIN { printf(\"ok %d\\n\", EINVAL); exit(); }'"))
'';
}
)
## bpftrace
# list probes
machine.succeed("bpftrace -l")
# simple BEGIN probe (user probe on bpftrace itself)
print(machine.succeed("bpftrace -e 'BEGIN { print(\"ok\\n\"); exit(); }'"))
# tracepoint
print(machine.succeed("bpftrace -e 'tracepoint:syscalls:sys_enter_* { print(probe); exit() }'"))
# kprobe
print(machine.succeed("bpftrace -e 'kprobe:schedule { print(probe); exit() }'"))
# BTF
print(machine.succeed("bpftrace -e 'kprobe:schedule { "
" printf(\"tgid: %d\\n\", ((struct task_struct*) curtask)->tgid); exit() "
"}'"))
# module BTF (bpftrace >= 0.17)
# test is currently disabled on aarch64 as kfunc does not work there yet
# https://github.com/iovisor/bpftrace/issues/2496
print(machine.succeed("uname -m | grep aarch64 || "
"bpftrace -e 'kfunc:nft_trans_alloc_gfp { "
" printf(\"portid: %d\\n\", args->ctx->portid); "
"} BEGIN { exit() }'"))
# glibc includes
print(machine.succeed("bpftrace -e '#include <errno.h>\n"
"BEGIN { printf(\"ok %d\\n\", EINVAL); exit(); }'"))
'';
}