summaryrefslogtreecommitdiff
path: root/integrationtests/dir_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-06 10:12:57 +0300
committerPaul Buetow <paul@buetow.org>2026-06-06 10:12:57 +0300
commit57615945e6796950e7095a3ee8a97651ae3f1bd9 (patch)
tree5593e97a4c45a35755eb1ca2b726583f881380c6 /integrationtests/dir_test.go
parent3ce0f52a9f608b28c550083574fa3ef442107f53 (diff)
test: add coverage for mknodat and ioprio_get/ioprio_set
Add end-to-end integration scenarios and tests for two previously untested syscalls: - mknodat(2): new dir-mknodat-fifo scenario creates an unprivileged FIFO node (S_IFIFO, no CAP_MKNOD) via unix.Mknodat under AT_FDCWD and unlinks it. TestDirMknodatFifo asserts enter_mknodat fires with pathname@args[1] (after dirfd@args[0]), proven by a PathContains match on the distinct fifo name, mirroring the mkdirat coverage. - ioprio_get(2)/ioprio_set(2): new ioprio-basic scenario (the I/O-priority analogues of getpriority/setpriority) issues the raw syscalls (no x/sys wrapper exists), reading the current self I/O priority and re-applying it, or a harmless unprivileged best-effort value when none is set. TestIoprioBasic asserts enter_ioprio_get and enter_ioprio_set fire (null enters, UNCLASSIFIED ret), mirroring priority-basic. Realtime class is deliberately avoided as it needs CAP_SYS_ADMIN. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'integrationtests/dir_test.go')
-rw-r--r--integrationtests/dir_test.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/integrationtests/dir_test.go b/integrationtests/dir_test.go
index d759abd..bbcc3fe 100644
--- a/integrationtests/dir_test.go
+++ b/integrationtests/dir_test.go
@@ -24,6 +24,22 @@ func TestDirMkdirat(t *testing.T) {
})
}
+// TestDirMknodatFifo verifies mknodat(2) is traced end-to-end. The
+// dir-mknodat-fifo workload creates an unprivileged FIFO node under AT_FDCWD,
+// so enter_mknodat fires with pathname@args[1] (after dirfd@args[0]). Matching
+// the distinct fifo name via PathContains proves the args[1] capture, mirroring
+// the mkdirat coverage above.
+func TestDirMknodatFifo(t *testing.T) {
+ runScenario(t, "dir-mknodat-fifo", []ExpectedEvent{
+ {
+ PathContains: "mknodat-fifo",
+ Tracepoint: "enter_mknodat",
+ Comm: "ioworkload",
+ MinCount: 1,
+ },
+ })
+}
+
func TestDirChdir(t *testing.T) {
runScenario(t, "dir-chdir", []ExpectedEvent{
{