summaryrefslogtreecommitdiff
path: root/internal/generate/codegen_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-21 17:54:03 +0300
committerPaul Buetow <paul@buetow.org>2026-05-21 17:54:03 +0300
commit61f0da12457ffc27b42565e79ac8c2ec9db0e4e7 (patch)
treefe8bb802faf0cc7ab01abbd467a75046c2eff4bc /internal/generate/codegen_test.go
parent2e32f235adee23eea2349c83312bb58f0ee6c7da (diff)
h7 classify additional memory syscalls
Diffstat (limited to 'internal/generate/codegen_test.go')
-rw-r--r--internal/generate/codegen_test.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/internal/generate/codegen_test.go b/internal/generate/codegen_test.go
index d61e0c9..7614ab1 100644
--- a/internal/generate/codegen_test.go
+++ b/internal/generate/codegen_test.go
@@ -236,6 +236,42 @@ func TestGenerateMemHandlerRemapFilePages(t *testing.T) {
requireContains(t, output, "ev->flags = (__u64)ctx->args[4];")
}
+func TestGenerateMemHandlerMprotect(t *testing.T) {
+ output := GenerateTracepointsC(mustParseAll(t, syntheticPair("mprotect")))
+
+ requireContains(t, output, `SEC("tracepoint/syscalls/sys_enter_mprotect")`)
+ requireContains(t, output, "struct mem_event *ev")
+ requireContains(t, output, "ev->event_type = ENTER_MEM_EVENT;")
+ requireContains(t, output, "ev->addr = (__u64)ctx->args[0];")
+ requireContains(t, output, "ev->length = (__u64)ctx->args[1];")
+ requireContains(t, output, "ev->length2 = 0;")
+ requireContains(t, output, "ev->flags = (__u64)ctx->args[2];")
+}
+
+func TestGenerateMemHandlerPkeyMprotect(t *testing.T) {
+ output := GenerateTracepointsC(mustParseAll(t, syntheticPair("pkey_mprotect")))
+
+ requireContains(t, output, `SEC("tracepoint/syscalls/sys_enter_pkey_mprotect")`)
+ requireContains(t, output, "struct mem_event *ev")
+ requireContains(t, output, "ev->event_type = ENTER_MEM_EVENT;")
+ requireContains(t, output, "ev->addr = (__u64)ctx->args[0];")
+ requireContains(t, output, "ev->length = (__u64)ctx->args[1];")
+ requireContains(t, output, "ev->length2 = (__u64)ctx->args[3];")
+ requireContains(t, output, "ev->flags = (__u64)ctx->args[2];")
+}
+
+func TestGenerateMemHandlerBrk(t *testing.T) {
+ output := GenerateTracepointsC(mustParseAll(t, syntheticPair("brk")))
+
+ requireContains(t, output, `SEC("tracepoint/syscalls/sys_enter_brk")`)
+ requireContains(t, output, "struct mem_event *ev")
+ requireContains(t, output, "ev->event_type = ENTER_MEM_EVENT;")
+ requireContains(t, output, "ev->addr = (__u64)ctx->args[0];")
+ requireContains(t, output, "ev->length = 0;")
+ requireContains(t, output, "ev->length2 = 0;")
+ requireContains(t, output, "ev->flags = 0;")
+}
+
func TestGenerateDup3Handler(t *testing.T) {
output := generateFromPair(t, FormatDup3, FormatExitDup3)