// SPDX-License-Identifier: GPL-3.0-or-later package detectors import ( "testing" "codeberg.org/anassaeneroi/enodia-sentinal/go-agent/internal/model" ) func TestDeletedExeMatchesPythonCases(t *testing.T) { state := model.State{Processes: []model.Process{ {PID: 300, Comm: "tmp", Exe: "/tmp/x (deleted)"}, {PID: 301, Comm: "memfd", Exe: "/memfd:foo (deleted)"}, {PID: 302, Comm: "upgrade", Exe: "/usr/bin/x (deleted)"}, {PID: 303, Comm: "normal", Exe: "/usr/bin/x"}, }} alerts := DeletedExe(state) if len(alerts) != 2 { t.Fatalf("expected two alerts, got %#v", alerts) } if alerts[0].SID != 100012 || alerts[0].Signature != "deleted_exe" || alerts[0].PIDs[0] != 300 { t.Fatalf("unexpected alert: %#v", alerts[0]) } if alerts[1].Key != "del:301" { t.Fatalf("unexpected memfd alert: %#v", alerts[1]) } }